Re: [PATCH] percpu: make this_cpu_generic_read notrace

From: Chunyan Zhang
Date: Fri Sep 16 2016 - 04:42:57 EST


Hi Will and Steven,

May I have a review or an acked-by from you on this patch so that Arnd
can pick it up.

I have tested this patch on arm qemu, I'm sure it can solve the
problem described in commit message.


Thanks,
Chunyan


On 10 September 2016 at 16:45, Chunyan Zhang <zhang.chunyan@xxxxxxxxxx> wrote:
> When debug preempt or preempt tracer is enabled, preempt_count_add/sub()
> can be traced by function and function graph tracing, and
> preempt_disable/enable() would call preempt_count_add/sub(), so
> we should use preempt_disable/enable_notrace in Ftrace subsystem.
>
> The function this_cpu_read() started being used by function graph tracing
> after the commit 345ddcc882d8 ("ftrace: Have set_ftrace_pid use the
> bitmap like events do"), so it has to use preempt_disable/enable_notrace
> instead now.
>
> Signed-off-by: Chunyan Zhang <zhang.chunyan@xxxxxxxxxx>
> ---
> include/asm-generic/percpu.h | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h
> index 4d9f233..70fefec 100644
> --- a/include/asm-generic/percpu.h
> +++ b/include/asm-generic/percpu.h
> @@ -108,9 +108,9 @@ do { \
> #define this_cpu_generic_read(pcp) \
> ({ \
> typeof(pcp) __ret; \
> - preempt_disable(); \
> + preempt_disable_notrace(); \
> __ret = *this_cpu_ptr(&(pcp)); \
> - preempt_enable(); \
> + preempt_enable_notrace(); \
> __ret; \
> })
>
> --
> 2.7.4
>