• Frederic Weisbecker's avatar
    context_tracking: Introduce HAVE_CONTEXT_TRACKING_OFFSTACK · 83c2da2e
    Frederic Weisbecker authored
    Historically, context tracking had to deal with fragile entry code path,
    ie: before user_exit() is called and after user_enter() is called, in
    case some of those spots would call schedule() or use RCU. On such
    cases, the site had to be protected between exception_enter() and
    exception_exit() that save the context tracking state in the task stack.
    
    Such sleepable fragile code path had many different origins: tracing,
    exceptions, early or late calls to context tracking on syscalls...
    
    Aside of that not being pretty, saving the context tracking state on
    the task stack forces us to run context tracking on all CPUs, including
    housekeepers, and prevents us to completely shutdown nohz_full at
    runtime on a CPU in the future as context tracking and its overhead
    would still need to run system wide.
    
    Now thanks to the extensive efforts to sanitize x86 entry code, those
    conditions have been removed and we can now get rid of these workarounds
    in this architecture.
    
    Create a Kconfig feature to express this achievement.
    Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
    Signed-off-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
    Link: https://lkml.kernel.org/r/20201117151637.259084-2-frederic@kernel.org
    83c2da2e
Kconfig 30.8 KB