Thread (11 messages) 11 messages, 3 authors, 2021-10-27

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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help