Thread (24 messages) 24 messages, 4 authors, 2014-07-31

[PATCH v4 2/5] x86,entry: Only call user_exit if TIF_NOHZ

From: Frederic Weisbecker <hidden>
Date: 2014-07-30 16:43:55
Also in: linux-arch, linux-mips, lkml

On Tue, Jul 29, 2014 at 09:32:32PM +0200, Oleg Nesterov wrote:
On 07/28, Andy Lutomirski wrote:
quoted
@@ -1449,7 +1449,12 @@ long syscall_trace_enter(struct pt_regs *regs)
 {
 	long ret = 0;
 
-	user_exit();
+	/*
+	 * If TIF_NOHZ is set, we are required to call user_exit() before
+	 * doing anything that could touch RCU.
+	 */
+	if (test_thread_flag(TIF_NOHZ))
+		user_exit();
Personally I still think this change just adds more confusion, but I leave
this to you and Frederic.

It is not that "If TIF_NOHZ is set, we are required to call user_exit()", we
need to call user_exit() just because we enter the kernel. TIF_NOHZ is just
the implementation detail which triggers this slow path.

At least it should be correct, unless I am confused even more than I think.
Agreed, Perhaps the confusion is on the syscall_trace_enter() name which suggests
this is only about tracing? syscall_slowpath_enter() could be an alternative.
But that's still tracing in a general sense so...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help