diff mbox

percpu: make this_cpu_generic_read notrace

Message ID 1473497134-27807-1-git-send-email-zhang.chunyan@linaro.org
State New
Headers show

Commit Message

Chunyan Zhang Sept. 10, 2016, 8:45 a.m. UTC
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@linaro.org>

---
 include/asm-generic/percpu.h | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.7.4

Comments

Chunyan Zhang Sept. 16, 2016, 8:42 a.m. UTC | #1
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@linaro.org> 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@linaro.org>

> ---

>  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

>
Will Deacon Sept. 16, 2016, 9:53 a.m. UTC | #2
On Fri, Sep 16, 2016 at 04:42:44PM +0800, Chunyan Zhang wrote:
> 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.


It looks fine to me; we took your equivalent patch for arm64 already, so:

Acked-by: Will Deacon <will.deacon@arm.com>


Will

> On 10 September 2016 at 16:45, Chunyan Zhang <zhang.chunyan@linaro.org> 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@linaro.org>

> > ---

> >  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

> >

>
Chunyan Zhang Sept. 16, 2016, 10:08 a.m. UTC | #3
On 16 September 2016 at 17:53, Will Deacon <will.deacon@arm.com> wrote:
> On Fri, Sep 16, 2016 at 04:42:44PM +0800, Chunyan Zhang wrote:

>> 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.

>

> It looks fine to me; we took your equivalent patch for arm64 already, so:


Yeah, I saw that.

>

> Acked-by: Will Deacon <will.deacon@arm.com>


Thanks,
Chunyan

>

> Will

>

>> On 10 September 2016 at 16:45, Chunyan Zhang <zhang.chunyan@linaro.org> 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@linaro.org>

>> > ---

>> >  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

>> >

>>
Steven Rostedt Sept. 16, 2016, 1:19 p.m. UTC | #4
On Fri, 16 Sep 2016 10:53:09 +0100
Will Deacon <will.deacon@arm.com> wrote:

> On Fri, Sep 16, 2016 at 04:42:44PM +0800, Chunyan Zhang wrote:

> > 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.  

> 

> It looks fine to me; we took your equivalent patch for arm64 already, so:

> 


Looks good to me too.

Acked-by: Steven Rostedt <rostedt@goodmis.org>


-- Steve
Arnd Bergmann Sept. 24, 2016, 9:18 a.m. UTC | #5
On Friday, September 16, 2016 10:53:09 AM CEST Will Deacon wrote:
> On Fri, Sep 16, 2016 at 04:42:44PM +0800, Chunyan Zhang wrote:

> > 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.

> 

> It looks fine to me; we took your equivalent patch for arm64 already, so:

> 

> Acked-by: Will Deacon <will.deacon@arm.com>

> 


Applied to my asm-generic tree now, sorry for the delay,

	Arnd
diff mbox

Patch

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;								\
 })