From: Frederic Weisbecker <frederic@kernel.org>
To: LKML <linux-kernel@vger.kernel.org>
Cc: Frederic Weisbecker <frederic@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
Phil Auld <pauld@redhat.com>, Alex Belits <abelits@marvell.com>,
Nicolas Saenz Julienne <nsaenz@kernel.org>,
Xiongfeng Wang <wangxiongfeng2@huawei.com>,
Neeraj Upadhyay <quic_neeraju@quicinc.com>,
Thomas Gleixner <tglx@linutronix.de>,
Yu Liao <liaoyu15@huawei.com>, Boqun Feng <boqun.feng@gmail.com>,
"Paul E . McKenney" <paulmck@kernel.org>,
Marcelo Tosatti <mtosatti@redhat.com>,
Paul Gortmaker <paul.gortmaker@windriver.com>,
Uladzislau Rezki <uladzislau.rezki@sony.com>,
Joel Fernandes <joel@joelfernandes.org>
Subject: [PATCH 06/21] context_tracking: Rename context_tracking_user_enter/exit() to user_enter/exit_callable()
Date: Tue, 3 May 2022 12:00:36 +0200 [thread overview]
Message-ID: <20220503100051.2799723-7-frederic@kernel.org> (raw)
In-Reply-To: <20220503100051.2799723-1-frederic@kernel.org>
context_tracking_user_enter() and context_tracking_user_exit() are
ASM callable versions of user_enter() and user_exit() for architectures
that didn't manage to check the context tracking static key from ASM.
Change those function names to better reflect their purpose.
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Cc: Paul E. McKenney <paulmck@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>
---
| 8 ++++----
arch/csky/kernel/entry.S | 4 ++--
arch/riscv/kernel/entry.S | 6 +++---
include/linux/context_tracking.h | 4 ++--
kernel/context_tracking.c | 20 ++++++++++++++------
5 files changed, 25 insertions(+), 17 deletions(-)
--git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
index 9a1dc142f782..0c14dcc43e58 100644
--- a/arch/arm/kernel/entry-header.S
+++ b/arch/arm/kernel/entry-header.S
@@ -370,10 +370,10 @@ ALT_UP_B(.L1_\@)
#ifdef CONFIG_CONTEXT_TRACKING
.if \save
stmdb sp!, {r0-r3, ip, lr}
- bl context_tracking_user_exit
+ bl user_exit_callable
ldmia sp!, {r0-r3, ip, lr}
.else
- bl context_tracking_user_exit
+ bl user_exit_callable
.endif
#endif
.endm
@@ -382,10 +382,10 @@ ALT_UP_B(.L1_\@)
#ifdef CONFIG_CONTEXT_TRACKING
.if \save
stmdb sp!, {r0-r3, ip, lr}
- bl context_tracking_user_enter
+ bl user_enter_callable
ldmia sp!, {r0-r3, ip, lr}
.else
- bl context_tracking_user_enter
+ bl user_enter_callable
.endif
#endif
.endm
diff --git a/arch/csky/kernel/entry.S b/arch/csky/kernel/entry.S
index a4ababf25e24..bc734d17c16f 100644
--- a/arch/csky/kernel/entry.S
+++ b/arch/csky/kernel/entry.S
@@ -23,7 +23,7 @@
mfcr a0, epsr
btsti a0, 31
bt 1f
- jbsr context_tracking_user_exit
+ jbsr user_exit_callable
ldw a0, (sp, LSAVE_A0)
ldw a1, (sp, LSAVE_A1)
ldw a2, (sp, LSAVE_A2)
@@ -160,7 +160,7 @@ ret_from_exception:
cmpnei r10, 0
bt exit_work
#ifdef CONFIG_CONTEXT_TRACKING
- jbsr context_tracking_user_enter
+ jbsr user_enter_callable
#endif
1:
#ifdef CONFIG_PREEMPTION
diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S
index c8b9ce274b9a..ecd132af2edf 100644
--- a/arch/riscv/kernel/entry.S
+++ b/arch/riscv/kernel/entry.S
@@ -112,11 +112,11 @@ _save_context:
#endif
#ifdef CONFIG_CONTEXT_TRACKING
- /* If previous state is in user mode, call context_tracking_user_exit. */
+ /* If previous state is in user mode, call user_exit_callable(). */
li a0, SR_PP
and a0, s1, a0
bnez a0, skip_context_tracking
- call context_tracking_user_exit
+ call user_exit_callable
skip_context_tracking:
#endif
@@ -256,7 +256,7 @@ resume_userspace:
bnez s1, work_pending
#ifdef CONFIG_CONTEXT_TRACKING
- call context_tracking_user_enter
+ call user_enter_callable
#endif
/* Save unwound kernel stack pointer in thread_info */
diff --git a/include/linux/context_tracking.h b/include/linux/context_tracking.h
index 773035124bad..69532cd18f72 100644
--- a/include/linux/context_tracking.h
+++ b/include/linux/context_tracking.h
@@ -19,8 +19,8 @@ extern void __ct_user_exit(enum ctx_state state);
extern void context_tracking_enter(enum ctx_state state);
extern void context_tracking_exit(enum ctx_state state);
-extern void context_tracking_user_enter(void);
-extern void context_tracking_user_exit(void);
+extern void user_enter_callable(void);
+extern void user_exit_callable(void);
static inline void user_enter(void)
{
diff --git a/kernel/context_tracking.c b/kernel/context_tracking.c
index 554c2c9587eb..e4e7aad6c2bc 100644
--- a/kernel/context_tracking.c
+++ b/kernel/context_tracking.c
@@ -130,15 +130,19 @@ void context_tracking_enter(enum ctx_state state)
NOKPROBE_SYMBOL(context_tracking_enter);
EXPORT_SYMBOL_GPL(context_tracking_enter);
-/*
+/**
+ * user_enter_callable() - Unfortunate ASM callable version of user_enter() for
+ * archs that didn't manage to check the context tracking
+ * static key from low level code.
+ *
* FIXME: This function should be noinstr but it unsafely calls local_irq_restore(),
* involving illegal RCU uses through tracing and lockdep. This must be fixed first.
*/
-void context_tracking_user_enter(void)
+void user_enter_callable(void)
{
user_enter();
}
-NOKPROBE_SYMBOL(context_tracking_user_enter);
+NOKPROBE_SYMBOL(user_enter_callable);
/**
* __ct_user_exit - Inform the context tracking that the CPU is
@@ -196,15 +200,19 @@ void context_tracking_exit(enum ctx_state state)
NOKPROBE_SYMBOL(context_tracking_exit);
EXPORT_SYMBOL_GPL(context_tracking_exit);
-/*
+/**
+ * user_exit_callable() - Unfortunate ASM callable version of user_exit() for
+ * archs that didn't manage to check the context tracking
+ * static key from low level code.
+ *
* FIXME: This function should be noinstr but it unsafely calls local_irq_save(),
* involving illegal RCU uses through tracing and lockdep. This must be fixed first.
*/
-void context_tracking_user_exit(void)
+void user_exit_callable(void)
{
user_exit();
}
-NOKPROBE_SYMBOL(context_tracking_user_exit);
+NOKPROBE_SYMBOL(user_exit_callable);
void __init context_tracking_cpu_set(int cpu)
{
--
2.25.1
next prev parent reply other threads:[~2022-05-03 10:01 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-03 10:00 [PATCH 00/21] rcu/context-tracking: Merge RCU eqs-dynticks counter to context tracking v2 Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 01/21] context_tracking: Remove unused context_tracking_in_user() Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 02/21] rcu: Set rcu_idle_enter() as noinstr Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 03/21] rcu: Add a note about noinstr VS unsafe eqs functions Frederic Weisbecker
2022-05-19 14:48 ` Peter Zijlstra
2022-05-19 15:01 ` Frederic Weisbecker
2022-05-19 14:54 ` Peter Zijlstra
2022-05-19 15:26 ` Paul E. McKenney
2022-05-19 15:35 ` Frederic Weisbecker
2022-05-19 16:10 ` Paul E. McKenney
2022-05-19 15:00 ` Peter Zijlstra
2022-05-19 15:04 ` Frederic Weisbecker
2022-05-19 21:43 ` Peter Zijlstra
2022-05-03 10:00 ` [PATCH 04/21] context_tracking: Add a note about noinstr VS unsafe context tracking functions Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 05/21] context_tracking: Rename __context_tracking_enter/exit() to __ct_user_enter/exit() Frederic Weisbecker
2022-05-03 10:00 ` Frederic Weisbecker [this message]
2022-05-03 10:00 ` [PATCH 07/21] context_tracking: Rename context_tracking_enter/exit() to ct_user_enter/exit() Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 08/21] context_tracking: Rename context_tracking_cpu_set() to ct_cpu_track_user() Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 09/21] context_tracking: Split user tracking Kconfig Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 10/21] context_tracking: Take idle eqs entrypoints over RCU Frederic Weisbecker
2022-05-03 11:02 ` Mark Rutland
2022-05-03 11:42 ` Frederic Weisbecker
2022-05-03 13:33 ` Mark Rutland
2022-05-03 10:00 ` [PATCH 11/21] context_tracking: Take IRQ " Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 12/21] context_tracking: Take NMI " Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 13/21] rcu/context-tracking: Remove rcu_irq_enter/exit() Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 14/21] rcu/context_tracking: Move dynticks counter to context tracking Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 15/21] rcu/context_tracking: Move dynticks_nesting " Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 16/21] rcu/context_tracking: Move dynticks_nmi_nesting " Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 17/21] rcu/context-tracking: Move deferred nocb resched " Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 18/21] rcu/context-tracking: Move RCU-dynticks internal functions to context_tracking Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 19/21] rcu/context-tracking: Remove unused and/or unecessary middle functions Frederic Weisbecker
2022-05-03 10:00 ` [PATCH 20/21] context_tracking: Convert state to atomic_t Frederic Weisbecker
2022-05-18 15:09 ` nicolas saenz julienne
2022-05-19 14:37 ` Frederic Weisbecker
2022-05-23 11:59 ` nicolas saenz julienne
2022-05-03 10:00 ` [PATCH 21/21] rcu/context_tracking: Merge dynticks counter and context tracking states Frederic Weisbecker
2022-05-18 15:31 ` nicolas saenz julienne
2022-05-19 15:06 ` Frederic Weisbecker
2022-05-18 15:33 ` [PATCH 00/21] rcu/context-tracking: Merge RCU eqs-dynticks counter to context tracking v2 Nicolas Saenz Julienne
2022-05-19 15:07 ` Frederic Weisbecker
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220503100051.2799723-7-frederic@kernel.org \
--to=frederic@kernel.org \
--cc=abelits@marvell.com \
--cc=boqun.feng@gmail.com \
--cc=joel@joelfernandes.org \
--cc=liaoyu15@huawei.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mtosatti@redhat.com \
--cc=nsaenz@kernel.org \
--cc=paul.gortmaker@windriver.com \
--cc=pauld@redhat.com \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=quic_neeraju@quicinc.com \
--cc=tglx@linutronix.de \
--cc=uladzislau.rezki@sony.com \
--cc=wangxiongfeng2@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox