Commit 24a9c541 authored by Frederic Weisbecker's avatar Frederic Weisbecker Committed by Paul E. McKenney
Browse files

context_tracking: Split user tracking Kconfig



Context tracking is going to be used not only to track user transitions
but also idle/IRQs/NMIs. The user tracking part will then become a
separate feature. Prepare Kconfig for that.

[ frederic: Apply Max Filippov feedback. ]

Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Neeraj Upadhyay <quic_neeraju@quicinc.com>
Cc: Uladzislau Rezki <uladzislau.rezki@sony.com>
Cc: Joel Fernandes <joel@joelfernandes.org>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: Nicolas Saenz Julienne <nsaenz@kernel.org>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Xiongfeng Wang <wangxiongfeng2@huawei.com>
Cc: Yu Liao <liaoyu15@huawei.com>
Cc: Phil Auld <pauld@redhat.com>
Cc: Paul Gortmaker<paul.gortmaker@windriver.com>
Cc: Alex Belits <abelits@marvell.com>
Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
Reviewed-by: default avatarNicolas Saenz Julienne <nsaenzju@redhat.com>
Tested-by: default avatarNicolas Saenz Julienne <nsaenzju@redhat.com>
parent 2a0aafce
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
#
# Feature name:          context-tracking
#         Kconfig:       HAVE_CONTEXT_TRACKING
#         description:   arch supports context tracking for NO_HZ_FULL
# Feature name:          user-context-tracking
#         Kconfig:       HAVE_CONTEXT_TRACKING_USER
#         description:   arch supports user context tracking for NO_HZ_FULL
#
    -----------------------
    |         arch |status|
+2 −2
Original line number Diff line number Diff line
@@ -774,7 +774,7 @@ config HAVE_ARCH_WITHIN_STACK_FRAMES
	  and similar) by implementing an inline arch_within_stack_frames(),
	  which is used by CONFIG_HARDENED_USERCOPY.

config HAVE_CONTEXT_TRACKING
config HAVE_CONTEXT_TRACKING_USER
	bool
	help
	  Provide kernel/user boundaries probes necessary for subsystems
@@ -785,7 +785,7 @@ config HAVE_CONTEXT_TRACKING
	  protected inside rcu_irq_enter/rcu_irq_exit() but preemption or signal
	  handling on irq exit still need to be protected.

config HAVE_CONTEXT_TRACKING_OFFSTACK
config HAVE_CONTEXT_TRACKING_USER_OFFSTACK
	bool
	help
	  Architecture neither relies on exception_enter()/exception_exit()
+1 −1
Original line number Diff line number Diff line
@@ -84,7 +84,7 @@ config ARM
	select HAVE_ARCH_TRANSPARENT_HUGEPAGE if ARM_LPAE
	select HAVE_ARM_SMCCC if CPU_V7
	select HAVE_EBPF_JIT if !CPU_ENDIAN_BE32
	select HAVE_CONTEXT_TRACKING
	select HAVE_CONTEXT_TRACKING_USER
	select HAVE_C_RECORDMCOUNT
	select HAVE_BUILDTIME_MCOUNT_SORT
	select HAVE_DEBUG_KMEMLEAK if !XIP_KERNEL
+2 −2
Original line number Diff line number Diff line
@@ -28,7 +28,7 @@
#include "entry-header.S"

saved_psr	.req	r8
#if defined(CONFIG_TRACE_IRQFLAGS) || defined(CONFIG_CONTEXT_TRACKING)
#if defined(CONFIG_TRACE_IRQFLAGS) || defined(CONFIG_CONTEXT_TRACKING_USER)
saved_pc	.req	r9
#define TRACE(x...) x
#else
@@ -38,7 +38,7 @@ saved_pc .req lr

	.section .entry.text,"ax",%progbits
	.align	5
#if !(IS_ENABLED(CONFIG_TRACE_IRQFLAGS) || IS_ENABLED(CONFIG_CONTEXT_TRACKING) || \
#if !(IS_ENABLED(CONFIG_TRACE_IRQFLAGS) || IS_ENABLED(CONFIG_CONTEXT_TRACKING_USER) || \
	IS_ENABLED(CONFIG_DEBUG_RSEQ))
/*
 * This is the fast syscall return path.  We do as little as possible here,
+2 −2
Original line number Diff line number Diff line
@@ -366,7 +366,7 @@ ALT_UP_B(.L1_\@)
 * between user and kernel mode.
 */
	.macro ct_user_exit, save = 1
#ifdef CONFIG_CONTEXT_TRACKING
#ifdef CONFIG_CONTEXT_TRACKING_USER
	.if	\save
	stmdb   sp!, {r0-r3, ip, lr}
	bl	user_exit_callable
@@ -378,7 +378,7 @@ ALT_UP_B(.L1_\@)
	.endm

	.macro ct_user_enter, save = 1
#ifdef CONFIG_CONTEXT_TRACKING
#ifdef CONFIG_CONTEXT_TRACKING_USER
	.if	\save
	stmdb   sp!, {r0-r3, ip, lr}
	bl	user_enter_callable
Loading