2020-02-12 21:15:20

by Peter Zijlstra

[permalink] [raw]
Subject: [PATCH v2 9/9] perf,tracing: Allow function tracing when !RCU

Since perf is now able to deal with !rcu_is_watching() contexts,
remove the restraint.

Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
---
kernel/trace/trace_event_perf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

--- a/kernel/trace/trace_event_perf.c
+++ b/kernel/trace/trace_event_perf.c
@@ -477,7 +477,7 @@ static int perf_ftrace_function_register
{
struct ftrace_ops *ops = &event->ftrace_ops;

- ops->flags = FTRACE_OPS_FL_RCU;
+ ops->flags = 0;
ops->func = perf_ftrace_function_call;
ops->private = (void *)(unsigned long)nr_cpu_ids;




2020-02-14 02:29:07

by Sergey Senozhatsky

[permalink] [raw]
Subject: Re: [PATCH v2 9/9] perf,tracing: Allow function tracing when !RCU

On (20/02/12 22:01), Peter Zijlstra wrote:
> Since perf is now able to deal with !rcu_is_watching() contexts,
> remove the restraint.
>
> Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
> ---
> kernel/trace/trace_event_perf.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/kernel/trace/trace_event_perf.c
> +++ b/kernel/trace/trace_event_perf.c
> @@ -477,7 +477,7 @@ static int perf_ftrace_function_register
> {
> struct ftrace_ops *ops = &event->ftrace_ops;
>
> - ops->flags = FTRACE_OPS_FL_RCU;
> + ops->flags = 0;

FTRACE_OPS_FL_ENABLED?

-ss

2020-02-14 02:43:14

by Sergey Senozhatsky

[permalink] [raw]
Subject: Re: [PATCH v2 9/9] perf,tracing: Allow function tracing when !RCU

On (20/02/14 11:28), Sergey Senozhatsky wrote:
> On (20/02/12 22:01), Peter Zijlstra wrote:
> > Since perf is now able to deal with !rcu_is_watching() contexts,
> > remove the restraint.
> >
> > Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
> > ---
> > kernel/trace/trace_event_perf.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > --- a/kernel/trace/trace_event_perf.c
> > +++ b/kernel/trace/trace_event_perf.c
> > @@ -477,7 +477,7 @@ static int perf_ftrace_function_register
> > {
> > struct ftrace_ops *ops = &event->ftrace_ops;
> >
> > - ops->flags = FTRACE_OPS_FL_RCU;
> > + ops->flags = 0;
>
> FTRACE_OPS_FL_ENABLED?

No, never mind.

-ss

2020-02-14 03:33:14

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH v2 9/9] perf,tracing: Allow function tracing when !RCU

On Fri, 14 Feb 2020 11:42:45 +0900
Sergey Senozhatsky <[email protected]> wrote:

> > > +++ b/kernel/trace/trace_event_perf.c
> > > @@ -477,7 +477,7 @@ static int perf_ftrace_function_register
> > > {
> > > struct ftrace_ops *ops = &event->ftrace_ops;
> > >
> > > - ops->flags = FTRACE_OPS_FL_RCU;
> > > + ops->flags = 0;
> >
> > FTRACE_OPS_FL_ENABLED?
>
> No, never mind.

:-)

-- Steve

2020-02-14 20:39:05

by Kim Phillips

[permalink] [raw]
Subject: Re: [PATCH v2 9/9] perf,tracing: Allow function tracing when !RCU

On 2/12/20 3:01 PM, Peter Zijlstra wrote:
> Since perf is now able to deal with !rcu_is_watching() contexts,
> remove the restraint.
>
> Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
> ---
> kernel/trace/trace_event_perf.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> --- a/kernel/trace/trace_event_perf.c
> +++ b/kernel/trace/trace_event_perf.c
> @@ -477,7 +477,7 @@ static int perf_ftrace_function_register
> {
> struct ftrace_ops *ops = &event->ftrace_ops;
>
> - ops->flags = FTRACE_OPS_FL_RCU;
> + ops->flags = 0;
> ops->func = perf_ftrace_function_call;
> ops->private = (void *)(unsigned long)nr_cpu_ids;

If this is the last user of the flag, should all remaining
FTRACE_OPS_FL_RCU references be removed, too?

Thanks,

Kim

2020-02-14 22:49:07

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH v2 9/9] perf,tracing: Allow function tracing when !RCU

On Fri, 14 Feb 2020 14:38:14 -0600
Kim Phillips <[email protected]> wrote:

> On 2/12/20 3:01 PM, Peter Zijlstra wrote:
> > Since perf is now able to deal with !rcu_is_watching() contexts,
> > remove the restraint.
> >
> > Signed-off-by: Peter Zijlstra (Intel) <[email protected]>
> > ---
> > kernel/trace/trace_event_perf.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > --- a/kernel/trace/trace_event_perf.c
> > +++ b/kernel/trace/trace_event_perf.c
> > @@ -477,7 +477,7 @@ static int perf_ftrace_function_register
> > {
> > struct ftrace_ops *ops = &event->ftrace_ops;
> >
> > - ops->flags = FTRACE_OPS_FL_RCU;
> > + ops->flags = 0;
> > ops->func = perf_ftrace_function_call;
> > ops->private = (void *)(unsigned long)nr_cpu_ids;
>
> If this is the last user of the flag, should all remaining
> FTRACE_OPS_FL_RCU references be removed, too?

Let's wait till Peter's patches goes through a merge cycle or two. I
want to make sure there's no other RCU issues that pop up before we
remove this infrastructure.

-- Steve