[patch part-II V2 00/13] x86/entry: Consolidation - Part II (syscalls)
From: Thomas Gleixner
Date: Sun Mar 08 2020 - 19:25:35 EST
Hi!
This is the second version of the syscall entry code consolidation
series. V1 can be found here:
https://lore.kernel.org/r/20200225220801.571835584@xxxxxxxxxxxxx
It applies on top of
git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/entry
and is also available from git:
git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel entry-v2-part2
The changes vs. V1:
- Addressed the review comments. The main change is the rework of
preparing the move of interrupt tracing to C-code. The new version
creates less churn which needs to be mopped up afterwards again.
- Provide new variants for trace_hardirqs_on() which are not using
the rcuidle tracepoint mechanism and do not call into lockdep.
This allows to split up lockdep and tracing in the enter from user and
exit to user implementation.
Aside of addressing the rcuidle issue of functions attached to
tracepoints which are not rcuidle safe, e.g. BPF, this also has a
performance advantage as it spares the srcu/rcu_irq dance around the
tracepoint before enter_from_user_mode() which turns RCU back on
anyway. Same on the way out.
- Picked up Reviewed-by and Acked-by tags
Thanks,
tglx
---
arch/x86/entry/common.c | 106 +++++++++++++++++++++++++--------
arch/x86/entry/entry_32.S | 26 +-------
arch/x86/entry/entry_64.S | 6 -
arch/x86/entry/entry_64_compat.S | 32 +--------
arch/x86/include/asm/nospec-branch.h | 4 -
include/linux/context_tracking.h | 14 ++--
include/linux/context_tracking_state.h | 6 -
include/linux/irqflags.h | 4 +
kernel/context_tracking.c | 9 +-
kernel/trace/trace_preemptirq.c | 23 +++++++
10 files changed, 136 insertions(+), 94 deletions(-)