Re: [patch part-II V2 02/13] x86/entry: Mark enter_from_user_mode() notrace and NOKPROBE

From: Alexandre Chartre
Date: Tue Mar 10 2020 - 06:16:20 EST




On 3/8/20 11:24 PM, Thomas Gleixner wrote:
Both the callers in the low level ASM code and __context_tracking_exit()
which is invoked from enter_from_user_mode() via user_exit_irqoff() are
marked NOKPROBE. Allowing enter_from_user_mode() to be probed is
inconsistent at best.

Aside of that while function tracing per se is safe the function trace
entry/exit points can be used via BPF as well which is not safe to use
before context tracking has reached CONTEXT_KERNEL and adjusted RCU.

Mark it notrace and NOKROBE.

Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
---
arch/x86/entry/common.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)


Reviewed-by: Alexandre Chartre <alexandre.chartre@xxxxxxxxxx>

alex.

--- a/arch/x86/entry/common.c
+++ b/arch/x86/entry/common.c
@@ -40,11 +40,12 @@
#ifdef CONFIG_CONTEXT_TRACKING
/* Called on entry from user mode with IRQs off. */
-__visible inline void enter_from_user_mode(void)
+__visible inline notrace void enter_from_user_mode(void)
{
CT_WARN_ON(ct_state() != CONTEXT_USER);
user_exit_irqoff();
}
+NOKPROBE_SYMBOL(enter_from_user_mode);
#else
static inline void enter_from_user_mode(void) {}
#endif