Re: [patch V4 part 2 03/18] x86/entry: Mark enter_from_user_mode() noinstr
From: Masami Hiramatsu
Date: Fri May 08 2020 - 04:21:08 EST
On Tue, 05 May 2020 15:41:15 +0200
Thomas Gleixner <tglx@xxxxxxxxxxxxx> 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 noinstr which moves it into the instrumentation protected text
> section and includes notrace.
>
> Note, this needs further fixups in context tracking to ensure that the
> full call chain is protected. Will be addressed in follow up changes.
>
> Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Looks good to me.
Reviewed-by: Masami Hiramatsu <mhiramat@xxxxxxxxxx>
Thank you,
> ---
> arch/x86/entry/common.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/arch/x86/entry/common.c
> +++ b/arch/x86/entry/common.c
> @@ -41,7 +41,7 @@
>
> #ifdef CONFIG_CONTEXT_TRACKING
> /* Called on entry from user mode with IRQs off. */
> -__visible inline void enter_from_user_mode(void)
> +__visible inline noinstr void enter_from_user_mode(void)
> {
> CT_WARN_ON(ct_state() != CONTEXT_USER);
> user_exit_irqoff();
>
--
Masami Hiramatsu <mhiramat@xxxxxxxxxx>