Message ID | 20190919150808.617944343@linutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | entry: Provide generic implementation for host and guest entry/exit work | expand |
On Thu, Sep 19, 2019 at 8:09 AM Thomas Gleixner <tglx@linutronix.de> wrote: > > Evaluating _TIF_NOHZ to decide whether to use the slow syscall entry path > is not only pointless, it's actually counterproductive: > > 1) Context tracking code is invoked unconditionally before that flag is > evaluated. > > 2) If the flag is set the slow path is invoked for nothing due to #1 Can we also get rid of TIF_NOHZ on x86?
On Fri, 20 Sep 2019, Andy Lutomirski wrote: > On Thu, Sep 19, 2019 at 8:09 AM Thomas Gleixner <tglx@linutronix.de> wrote: > > > > Evaluating _TIF_NOHZ to decide whether to use the slow syscall entry path > > is not only pointless, it's actually counterproductive: > > > > 1) Context tracking code is invoked unconditionally before that flag is > > evaluated. > > > > 2) If the flag is set the slow path is invoked for nothing due to #1 > > Can we also get rid of TIF_NOHZ on x86? If we make the usage in context_tracking_cpu_set() conditional. Thanks, tglx
--- a/arch/x86/include/asm/thread_info.h +++ b/arch/x86/include/asm/thread_info.h @@ -133,14 +133,10 @@ struct thread_info { #define _TIF_X32 (1 << TIF_X32) #define _TIF_FSCHECK (1 << TIF_FSCHECK) -/* - * work to do in syscall_trace_enter(). Also includes TIF_NOHZ for - * enter_from_user_mode() - */ +/* Work to do before invoking the actual syscall. */ #define _TIF_WORK_SYSCALL_ENTRY \ (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_EMU | _TIF_SYSCALL_AUDIT | \ - _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \ - _TIF_NOHZ) + _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT) /* flags to check in __switch_to() */ #define _TIF_WORK_CTXSW_BASE \
Evaluating _TIF_NOHZ to decide whether to use the slow syscall entry path is not only pointless, it's actually counterproductive: 1) Context tracking code is invoked unconditionally before that flag is evaluated. 2) If the flag is set the slow path is invoked for nothing due to #1 Remove it. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> --- arch/x86/include/asm/thread_info.h | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-)