All of lore.kernel.org
 help / color / mirror / Atom feed
From: Steven Rostedt <rostedt@goodmis.org>
To: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
Cc: <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>, <lkp@intel.com>,
	<lkp@lists.01.org>, <matthias.bgg@gmail.com>, <mingo@redhat.com>,
	<oliver.sang@intel.com>, <yj.chiang@mediatek.com>
Subject: Re: [PATCH] tracing: Avoid adding duplicated tracer options when update_tracer_options is running in parallel
Date: Wed, 23 Mar 2022 10:28:31 -0400	[thread overview]
Message-ID: <20220323102831.1cf884d6@gandalf.local.home> (raw)
In-Reply-To: <20220323142129.4175-1-mark-pk.tsai@mediatek.com>

On Wed, 23 Mar 2022 22:21:29 +0800
Mark-PK Tsai <mark-pk.tsai@mediatek.com> wrote:

> > On Wed, 23 Mar 2022 11:24:42 +0800
> > Mark-PK Tsai <mark-pk.tsai@mediatek.com> wrote:
> >   
> > > When update_tracer_options is running in parallel,
> > > tr->tops might be updated before the trace_types list traversal.
> > > Let update_tracer_options traverse the trace_types list safely in
> > > kernel init time and avoid the tr->tops update before it finish.  
> > 
> > ??? Have you seen a bug here? I'm totally confused by this.  
> 
> Sorry to make you confused.
> 
> After the below patch, update_tracer_options might be executed later than registering
> hwlat_tracer, which is in late_initcall.
> 
> https://lore.kernel.org/lkml/20220316151639.9216-1-mark-pk.tsai@mediatek.com/

If you send patches that depend on patches that are not in the tree, you
need to explicitly state that.


> 
> The init_hwlat_tracer initcall will put hwlat_tracer to tr->tops.
> Then when the later arrived __update_tracer_options is trying to
> update all the tracer options, create_trace_option_files show the
> below warning because hwlat_tracer is already in the list.
> 
> [ 6.680068 ][ T7 ] WARNING: CPU: 0 PID: 7 at kernel/trace/trace.c:8899 create_trace_option_files (kernel/trace/trace.c:8899 (discriminator 1))
> 
> full log: https://lore.kernel.org/lkml/20220322133339.GA32582@xsang-OptiPlex-9020/

So this is all dependent on patches not in the tree?

> 
> 
> >   
> > > 
> > > Link: https://lore.kernel.org/lkml/20220322133339.GA32582@xsang-OptiPlex-9020/
> > > Reported-by: kernel test robot <oliver.sang@intel.com>
> > > Signed-off-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
> > > ---
> > >  kernel/trace/trace.c | 7 +++++++
> > >  1 file changed, 7 insertions(+)
> > > 
> > > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> > > index adb37e437a05..2974ae056068 100644
> > > --- a/kernel/trace/trace.c
> > > +++ b/kernel/trace/trace.c
> > > @@ -6317,12 +6317,18 @@ static void tracing_set_nop(struct trace_array *tr)
> > >  	tr->current_trace = &nop_trace;
> > >  }
> > >  
> > > +static bool tracer_options_updated;
> > > +
> > >  static void add_tracer_options(struct trace_array *tr, struct tracer *t)
> > >  {
> > >  	/* Only enable if the directory has been created already. */
> > >  	if (!tr->dir)
> > >  		return;
> > >  
> > > +	/* Only create trace option files after update_tracer_options finish */
> > > +	if (!tracer_options_updated)
> > > +		return;
> > > +
> > >  	create_trace_option_files(tr, t);
> > >  }
> > >  
> > > @@ -9133,6 +9139,7 @@ static void update_tracer_options(struct trace_array *tr)
> > >  {
> > >  	mutex_lock(&trace_types_lock);  
> > 
> > How is update_trace_options run in parallel?
> > 
> > There's a mutex that protects it. 
> >   
> 
> Oh sorry.
> What I trying to tell is that update_trace_options is run in parallel with
> the initcall thread after:
> 
> https://lore.kernel.org/lkml/20220316151639.9216-1-mark-pk.tsai@mediatek.com/
> 

Again, this is not in the tree, so it should be part of that patch series,
which I haven't yet been able to fully review.

-- Steve

WARNING: multiple messages have this Message-ID (diff)
From: Steven Rostedt <rostedt@goodmis.org>
To: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
Cc: <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>, <lkp@intel.com>,
	<lkp@lists.01.org>, <matthias.bgg@gmail.com>, <mingo@redhat.com>,
	<oliver.sang@intel.com>, <yj.chiang@mediatek.com>
Subject: Re: [PATCH] tracing: Avoid adding duplicated tracer options when update_tracer_options is running in parallel
Date: Wed, 23 Mar 2022 10:28:31 -0400	[thread overview]
Message-ID: <20220323102831.1cf884d6@gandalf.local.home> (raw)
In-Reply-To: <20220323142129.4175-1-mark-pk.tsai@mediatek.com>

On Wed, 23 Mar 2022 22:21:29 +0800
Mark-PK Tsai <mark-pk.tsai@mediatek.com> wrote:

> > On Wed, 23 Mar 2022 11:24:42 +0800
> > Mark-PK Tsai <mark-pk.tsai@mediatek.com> wrote:
> >   
> > > When update_tracer_options is running in parallel,
> > > tr->tops might be updated before the trace_types list traversal.
> > > Let update_tracer_options traverse the trace_types list safely in
> > > kernel init time and avoid the tr->tops update before it finish.  
> > 
> > ??? Have you seen a bug here? I'm totally confused by this.  
> 
> Sorry to make you confused.
> 
> After the below patch, update_tracer_options might be executed later than registering
> hwlat_tracer, which is in late_initcall.
> 
> https://lore.kernel.org/lkml/20220316151639.9216-1-mark-pk.tsai@mediatek.com/

If you send patches that depend on patches that are not in the tree, you
need to explicitly state that.


> 
> The init_hwlat_tracer initcall will put hwlat_tracer to tr->tops.
> Then when the later arrived __update_tracer_options is trying to
> update all the tracer options, create_trace_option_files show the
> below warning because hwlat_tracer is already in the list.
> 
> [ 6.680068 ][ T7 ] WARNING: CPU: 0 PID: 7 at kernel/trace/trace.c:8899 create_trace_option_files (kernel/trace/trace.c:8899 (discriminator 1))
> 
> full log: https://lore.kernel.org/lkml/20220322133339.GA32582@xsang-OptiPlex-9020/

So this is all dependent on patches not in the tree?

> 
> 
> >   
> > > 
> > > Link: https://lore.kernel.org/lkml/20220322133339.GA32582@xsang-OptiPlex-9020/
> > > Reported-by: kernel test robot <oliver.sang@intel.com>
> > > Signed-off-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
> > > ---
> > >  kernel/trace/trace.c | 7 +++++++
> > >  1 file changed, 7 insertions(+)
> > > 
> > > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> > > index adb37e437a05..2974ae056068 100644
> > > --- a/kernel/trace/trace.c
> > > +++ b/kernel/trace/trace.c
> > > @@ -6317,12 +6317,18 @@ static void tracing_set_nop(struct trace_array *tr)
> > >  	tr->current_trace = &nop_trace;
> > >  }
> > >  
> > > +static bool tracer_options_updated;
> > > +
> > >  static void add_tracer_options(struct trace_array *tr, struct tracer *t)
> > >  {
> > >  	/* Only enable if the directory has been created already. */
> > >  	if (!tr->dir)
> > >  		return;
> > >  
> > > +	/* Only create trace option files after update_tracer_options finish */
> > > +	if (!tracer_options_updated)
> > > +		return;
> > > +
> > >  	create_trace_option_files(tr, t);
> > >  }
> > >  
> > > @@ -9133,6 +9139,7 @@ static void update_tracer_options(struct trace_array *tr)
> > >  {
> > >  	mutex_lock(&trace_types_lock);  
> > 
> > How is update_trace_options run in parallel?
> > 
> > There's a mutex that protects it. 
> >   
> 
> Oh sorry.
> What I trying to tell is that update_trace_options is run in parallel with
> the initcall thread after:
> 
> https://lore.kernel.org/lkml/20220316151639.9216-1-mark-pk.tsai@mediatek.com/
> 

Again, this is not in the tree, so it should be part of that patch series,
which I haven't yet been able to fully review.

-- Steve

_______________________________________________
Linux-mediatek mailing list
Linux-mediatek@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-mediatek

WARNING: multiple messages have this Message-ID (diff)
From: Steven Rostedt <rostedt@goodmis.org>
To: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
Cc: <linux-arm-kernel@lists.infradead.org>,
	<linux-kernel@vger.kernel.org>,
	<linux-mediatek@lists.infradead.org>, <lkp@intel.com>,
	<lkp@lists.01.org>, <matthias.bgg@gmail.com>, <mingo@redhat.com>,
	<oliver.sang@intel.com>, <yj.chiang@mediatek.com>
Subject: Re: [PATCH] tracing: Avoid adding duplicated tracer options when update_tracer_options is running in parallel
Date: Wed, 23 Mar 2022 10:28:31 -0400	[thread overview]
Message-ID: <20220323102831.1cf884d6@gandalf.local.home> (raw)
In-Reply-To: <20220323142129.4175-1-mark-pk.tsai@mediatek.com>

On Wed, 23 Mar 2022 22:21:29 +0800
Mark-PK Tsai <mark-pk.tsai@mediatek.com> wrote:

> > On Wed, 23 Mar 2022 11:24:42 +0800
> > Mark-PK Tsai <mark-pk.tsai@mediatek.com> wrote:
> >   
> > > When update_tracer_options is running in parallel,
> > > tr->tops might be updated before the trace_types list traversal.
> > > Let update_tracer_options traverse the trace_types list safely in
> > > kernel init time and avoid the tr->tops update before it finish.  
> > 
> > ??? Have you seen a bug here? I'm totally confused by this.  
> 
> Sorry to make you confused.
> 
> After the below patch, update_tracer_options might be executed later than registering
> hwlat_tracer, which is in late_initcall.
> 
> https://lore.kernel.org/lkml/20220316151639.9216-1-mark-pk.tsai@mediatek.com/

If you send patches that depend on patches that are not in the tree, you
need to explicitly state that.


> 
> The init_hwlat_tracer initcall will put hwlat_tracer to tr->tops.
> Then when the later arrived __update_tracer_options is trying to
> update all the tracer options, create_trace_option_files show the
> below warning because hwlat_tracer is already in the list.
> 
> [ 6.680068 ][ T7 ] WARNING: CPU: 0 PID: 7 at kernel/trace/trace.c:8899 create_trace_option_files (kernel/trace/trace.c:8899 (discriminator 1))
> 
> full log: https://lore.kernel.org/lkml/20220322133339.GA32582@xsang-OptiPlex-9020/

So this is all dependent on patches not in the tree?

> 
> 
> >   
> > > 
> > > Link: https://lore.kernel.org/lkml/20220322133339.GA32582@xsang-OptiPlex-9020/
> > > Reported-by: kernel test robot <oliver.sang@intel.com>
> > > Signed-off-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
> > > ---
> > >  kernel/trace/trace.c | 7 +++++++
> > >  1 file changed, 7 insertions(+)
> > > 
> > > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> > > index adb37e437a05..2974ae056068 100644
> > > --- a/kernel/trace/trace.c
> > > +++ b/kernel/trace/trace.c
> > > @@ -6317,12 +6317,18 @@ static void tracing_set_nop(struct trace_array *tr)
> > >  	tr->current_trace = &nop_trace;
> > >  }
> > >  
> > > +static bool tracer_options_updated;
> > > +
> > >  static void add_tracer_options(struct trace_array *tr, struct tracer *t)
> > >  {
> > >  	/* Only enable if the directory has been created already. */
> > >  	if (!tr->dir)
> > >  		return;
> > >  
> > > +	/* Only create trace option files after update_tracer_options finish */
> > > +	if (!tracer_options_updated)
> > > +		return;
> > > +
> > >  	create_trace_option_files(tr, t);
> > >  }
> > >  
> > > @@ -9133,6 +9139,7 @@ static void update_tracer_options(struct trace_array *tr)
> > >  {
> > >  	mutex_lock(&trace_types_lock);  
> > 
> > How is update_trace_options run in parallel?
> > 
> > There's a mutex that protects it. 
> >   
> 
> Oh sorry.
> What I trying to tell is that update_trace_options is run in parallel with
> the initcall thread after:
> 
> https://lore.kernel.org/lkml/20220316151639.9216-1-mark-pk.tsai@mediatek.com/
> 

Again, this is not in the tree, so it should be part of that patch series,
which I haven't yet been able to fully review.

-- Steve

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: Steven Rostedt <rostedt@goodmis.org>
To: lkp@lists.01.org
Subject: Re: [PATCH] tracing: Avoid adding duplicated tracer options when update_tracer_options is running in parallel
Date: Wed, 23 Mar 2022 10:28:31 -0400	[thread overview]
Message-ID: <20220323102831.1cf884d6@gandalf.local.home> (raw)
In-Reply-To: <20220323142129.4175-1-mark-pk.tsai@mediatek.com>

[-- Attachment #1: Type: text/plain, Size: 3213 bytes --]

On Wed, 23 Mar 2022 22:21:29 +0800
Mark-PK Tsai <mark-pk.tsai@mediatek.com> wrote:

> > On Wed, 23 Mar 2022 11:24:42 +0800
> > Mark-PK Tsai <mark-pk.tsai@mediatek.com> wrote:
> >   
> > > When update_tracer_options is running in parallel,
> > > tr->tops might be updated before the trace_types list traversal.
> > > Let update_tracer_options traverse the trace_types list safely in
> > > kernel init time and avoid the tr->tops update before it finish.  
> > 
> > ??? Have you seen a bug here? I'm totally confused by this.  
> 
> Sorry to make you confused.
> 
> After the below patch, update_tracer_options might be executed later than registering
> hwlat_tracer, which is in late_initcall.
> 
> https://lore.kernel.org/lkml/20220316151639.9216-1-mark-pk.tsai(a)mediatek.com/

If you send patches that depend on patches that are not in the tree, you
need to explicitly state that.


> 
> The init_hwlat_tracer initcall will put hwlat_tracer to tr->tops.
> Then when the later arrived __update_tracer_options is trying to
> update all the tracer options, create_trace_option_files show the
> below warning because hwlat_tracer is already in the list.
> 
> [ 6.680068 ][ T7 ] WARNING: CPU: 0 PID: 7 at kernel/trace/trace.c:8899 create_trace_option_files (kernel/trace/trace.c:8899 (discriminator 1))
> 
> full log: https://lore.kernel.org/lkml/20220322133339.GA32582(a)xsang-OptiPlex-9020/

So this is all dependent on patches not in the tree?

> 
> 
> >   
> > > 
> > > Link: https://lore.kernel.org/lkml/20220322133339.GA32582(a)xsang-OptiPlex-9020/
> > > Reported-by: kernel test robot <oliver.sang@intel.com>
> > > Signed-off-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
> > > ---
> > >  kernel/trace/trace.c | 7 +++++++
> > >  1 file changed, 7 insertions(+)
> > > 
> > > diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
> > > index adb37e437a05..2974ae056068 100644
> > > --- a/kernel/trace/trace.c
> > > +++ b/kernel/trace/trace.c
> > > @@ -6317,12 +6317,18 @@ static void tracing_set_nop(struct trace_array *tr)
> > >  	tr->current_trace = &nop_trace;
> > >  }
> > >  
> > > +static bool tracer_options_updated;
> > > +
> > >  static void add_tracer_options(struct trace_array *tr, struct tracer *t)
> > >  {
> > >  	/* Only enable if the directory has been created already. */
> > >  	if (!tr->dir)
> > >  		return;
> > >  
> > > +	/* Only create trace option files after update_tracer_options finish */
> > > +	if (!tracer_options_updated)
> > > +		return;
> > > +
> > >  	create_trace_option_files(tr, t);
> > >  }
> > >  
> > > @@ -9133,6 +9139,7 @@ static void update_tracer_options(struct trace_array *tr)
> > >  {
> > >  	mutex_lock(&trace_types_lock);  
> > 
> > How is update_trace_options run in parallel?
> > 
> > There's a mutex that protects it. 
> >   
> 
> Oh sorry.
> What I trying to tell is that update_trace_options is run in parallel with
> the initcall thread after:
> 
> https://lore.kernel.org/lkml/20220316151639.9216-1-mark-pk.tsai(a)mediatek.com/
> 

Again, this is not in the tree, so it should be part of that patch series,
which I haven't yet been able to fully review.

-- Steve

  reply	other threads:[~2022-03-23 14:28 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-16 15:16 [PATCH v2] tracing: make tracer_init_tracefs initcall asynchronous Mark-PK Tsai
2022-03-16 15:16 ` Mark-PK Tsai
2022-03-16 15:16 ` Mark-PK Tsai
2022-03-22 13:33 ` [tracing] d9a641b3f5: WARNING:at_kernel/trace/trace.c:#create_trace_option_files kernel test robot
2022-03-22 13:33   ` kernel test robot
2022-03-22 13:33   ` kernel test robot
2022-03-23  3:24   ` [PATCH] tracing: Avoid adding duplicated tracer options when update_tracer_options is running in parallel Mark-PK Tsai
2022-03-23  3:24     ` Mark-PK Tsai
2022-03-23  3:24     ` Mark-PK Tsai
2022-03-23  3:24     ` Mark-PK Tsai
2022-03-23 13:30     ` Steven Rostedt
2022-03-23 13:30       ` Steven Rostedt
2022-03-23 13:30       ` Steven Rostedt
2022-03-23 13:30       ` Steven Rostedt
2022-03-23 14:21       ` Mark-PK Tsai
2022-03-23 14:21         ` Mark-PK Tsai
2022-03-23 14:21         ` Mark-PK Tsai
2022-03-23 14:21         ` Mark-PK Tsai
2022-03-23 14:28         ` Steven Rostedt [this message]
2022-03-23 14:28           ` Steven Rostedt
2022-03-23 14:28           ` Steven Rostedt
2022-03-23 14:28           ` Steven Rostedt
2022-03-23 14:45           ` Mark-PK Tsai
2022-03-23 14:45             ` Mark-PK Tsai
2022-03-23 14:45             ` Mark-PK Tsai
2022-03-23 14:45             ` Mark-PK Tsai

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220323102831.1cf884d6@gandalf.local.home \
    --to=rostedt@goodmis.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mediatek@lists.infradead.org \
    --cc=lkp@intel.com \
    --cc=lkp@lists.01.org \
    --cc=mark-pk.tsai@mediatek.com \
    --cc=matthias.bgg@gmail.com \
    --cc=mingo@redhat.com \
    --cc=oliver.sang@intel.com \
    --cc=yj.chiang@mediatek.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.