Re: [PATCH v5 1/2] ftrace: disable preemption when recursion locked
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2021-10-26 12:01:24
Also in:
linux-riscv, live-patching, lkml
From: Steven Rostedt <rostedt@goodmis.org>
Date: 2021-10-26 12:01:24
Also in:
linux-riscv, live-patching, lkml
On Tue, 26 Oct 2021 17:48:10 +0800 王贇 [off-list ref] wrote:
quoted
The two comments should be updated too since Steven removed the "bit == 0" trick.Could you please give more hint on how will it be correct? I get the point that bit will no longer be 0, there are only -1 or > 0 now so trace_test_and_set_recursion() will disable preemption on bit > 0 and trace_clear_recursion() will enabled it since it should only be called when bit > 0 (I remember we could use a WARN_ON here now :-P).quoted
quoted
@@ -178,7 +187,7 @@ static __always_inline void trace_clear_recursion(int bit) * tracing recursed in the same context (normal vs interrupt), * * Returns: -1 if a recursion happened. - * >= 0 if no recursion + * > 0 if no recursion. */ static __always_inline int ftrace_test_recursion_trylock(unsigned long ip, unsigned long parent_ip)And this change would not be correct now.I thought it will no longer return 0 so I change it to > 0, isn't that correct?
No it is not. I removed the bit + 1 return value, which means it returns the actual bit now. Which is 0 or more. -- Steve