All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@kernel.org>
To: Zhouyi Zhou <zhouzhouyi@gmail.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Josh Triplett <josh@joshtriplett.org>,
	rostedt <rostedt@goodmis.org>,
	Lai Jiangshan <jiangshanlai@gmail.com>,
	"Joel Fernandes, Google" <joel@joelfernandes.org>,
	rcu <rcu@vger.kernel.org>,
	linux-kernel <linux-kernel@vger.kernel.org>,
	apw@canonical.com, joe@perches.com, ast@kernel.org,
	daniel@iogearbox.net, andrii@kernel.org, kafai@fb.com,
	songliubraving@fb.com, yhs@fb.com, john.fastabend@gmail.com,
	kpsingh@kernel.org, bpf@vger.kernel.org, mingo@kernel.org
Subject: Re: [PATCH] RCU: Fix macro name CONFIG_TASKS_RCU_TRACE
Date: Sun, 18 Jul 2021 14:08:54 -0700	[thread overview]
Message-ID: <20210718210854.GP4397@paulmck-ThinkPad-P17-Gen-1> (raw)
In-Reply-To: <CAABZP2wuWtGAGRqWJb3Gewm5VLZdZ_C=LRZsFbaG3jcQabO3qA@mail.gmail.com>

On Sun, Jul 18, 2021 at 06:03:34AM +0800, Zhouyi Zhou wrote:
> Hi Paul
> During the research, I found a already existing tool to detect
> undefined Kconfig macro:
> scripts/checkkconfigsymbols.py. It is marvellous!

Nice!  Maybe I should add this to torture.sh.

> By invoking ./scripts/checkkconfigsymbols.py > /tmp/log, I found
> following possibly undefined Kconfig macros
> which may need our attention:
> 
> PREEMPT_LOCK
> Referencing files: include/linux/lockdep_types.h

Not sure about this one.  It might be in anticipation of -rt functionality.
Or another typo.

> PREEMT_DYNAMIC
> Referencing files: kernel/entry/common.c

This needs to be PREEMPT_DYNAMIC.  Please CC Frederic Weisbecker and
myself if you send a patch.

> TREE_PREEMPT_RCU
> Referencing files: arch/sh/configs/sdk7786_defconfig

This would have been correct back in the day.  It should now be
CONFIG_PREEMPT_RCU.  Except that the CONFIG_PREEMPT=y in that same
file implies CONFIG_PREEMPT_RCU=y, so best to simply delete the
CONFIG_TREE_PREEMPT_RCU=y line.

> RCU_CPU_STALL_INFO
> Referencing files: arch/xtensa/configs/nommu_kc705_defconfig

You now get RCU_CPU_STALL_INFO whether you want it or not, so this
line should be deleted.

> RCU_NOCB_CPU_ALL
> Referencing files:
> Documentation/RCU/Design/Memory-Ordering/Tree-RCU-Memory-Ordering.rst

This is an old snapshot of the code.  One approach would be to
update this from the real rcu_prepare_for_idle() function in
kernel/rcu/tree_plugin.h.  The line numbers in the following paragraph
would need to be updated, but the figure is unaffected.

> RCU_TORTURE_TESTS
> Referencing files: kernel/rcu/rcutorture.c

The final "S" needs to be dropped.

> and finally the macro which drive me to do this research
> 
> TASKS_RCU_TRACE
> Referencing files: include/linux/rcupdate.h, kernel/rcu/tree_plugin.h

The fix for this one is of course already queued.

Please CC me if you decide to create patches.  Otherwise, let me know,
and I can produce fixes.

							Thanx, Paul

> On Fri, Jul 16, 2021 at 2:09 AM Paul E. McKenney <paulmck@kernel.org> wrote:
> >
> > On Thu, Jul 15, 2021 at 04:45:04PM +0800, Zhouyi Zhou wrote:
> > > On Thu, Jul 15, 2021 at 11:51 AM Paul E. McKenney <paulmck@kernel.org> wrote:
> > > >
> > > > On Wed, Jul 14, 2021 at 12:44:36PM +0800, Zhouyi Zhou wrote:
> > > > > On Tue, Jul 13, 2021 at 11:19 PM Paul E. McKenney <paulmck@kernel.org> wrote:
> > > > > >
> > > > > > On Tue, Jul 13, 2021 at 06:18:12AM -0700, Paul E. McKenney wrote:
> > > > > > > On Tue, Jul 13, 2021 at 09:09:04AM -0400, Mathieu Desnoyers wrote:
> > > > > > > > ----- On Jul 13, 2021, at 12:16 AM, paulmck paulmck@kernel.org wrote:
> > > > > > > >
> > > > > > > > > On Tue, Jul 13, 2021 at 08:56:45AM +0800, zhouzhouyi@gmail.com wrote:
> > > > > > > > >> From: Zhouyi Zhou <zhouzhouyi@gmail.com>
> > > > > > > > >>
> > > > > > > > >> Hi Paul,
> > > > > > > > >>
> > > > > > > > >> During my studying of RCU, I did a grep in the kernel source tree.
> > > > > > > > >> I found there are 3 places where the macro name CONFIG_TASKS_RCU_TRACE
> > > > > > > > >> should be CONFIG_TASKS_TRACE_RCU instead.
> > > > > > > > >>
> > > > > > > > >> Without memory fencing, the idle/userspace task inspection may not
> > > > > > > > >> be so accurate.
> > > > > > > > >>
> > > > > > > > >> Thanks for your constant encouragement for my studying.
> > > > > > > > >>
> > > > > > > > >> Best Wishes
> > > > > > > > >> Zhouyi
> > > > > > > > >>
> > > > > > > > >> Signed-off-by: Zhouyi Zhou <zhouzhouyi@gmail.com>
> > > > > > > > >
> > > > > > > > > Good eyes, and those could cause real bugs, so thank you!
> > > > > > > >
> > > > > > > > Hi Paul,
> > > > > > > >
> > > > > > > > This makes me wonder: what is missing testing-wise in rcutorture to
> > > > > > > > catch those issues with testing before they reach mainline ?
> > > > > > >
> > > > > > > My guess:  Running on weakly ordered architectures.  ;-)
> > > > > >
> > > > > > And another guess:  A tool that identifies use of Kconfig options
> > > > > > that are not defined in any Kconfig* file.
> > > > > Based on Paul's second guess ;-),  I did a small research, and I think
> > > > > the best answer is to modify scripts/checkpatch.pl. We modify checkpatch.pl
> > > > > to identify use of Kconfig options that are not defined in any Kconfig* file.
> > > > >
> > > > > As I am a C/C++ programmer, I would be glad to take some time to learn
> > > > > perl (checkpatch is implented in perl) first if no other volunteer is
> > > > > about to do it ;-)
> > > >
> > > > I haven't heard anyone else volunteer.  ;-)
> > > >
> > > > Others might have opinions on where best to implement these checks,
> > > > but I must confess that I have not given it much thought.
> > > I recklessly cc the maintainers of checkpatch.pl without your
> > > permission to see others' opion,
> > > and I begin to study perl at the same time, after all, learning
> > > something is always good ;-)
> >
> > Works for me!
> >
> >                                                         Thanx, Paul
> Best Wishes
> Zhouyi

  reply	other threads:[~2021-07-18 21:08 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-13  0:56 [PATCH] RCU: Fix macro name CONFIG_TASKS_RCU_TRACE zhouzhouyi
2021-07-13  4:16 ` Paul E. McKenney
2021-07-13  6:16   ` Zhouyi Zhou
2021-07-13 13:09   ` Mathieu Desnoyers
2021-07-13 13:18     ` Paul E. McKenney
2021-07-13 15:19       ` Paul E. McKenney
2021-07-14  4:44         ` Zhouyi Zhou
2021-07-15  3:51           ` Paul E. McKenney
2021-07-15  8:45             ` Zhouyi Zhou
2021-07-15 18:09               ` Paul E. McKenney
2021-07-17 22:03                 ` Zhouyi Zhou
2021-07-18 21:08                   ` Paul E. McKenney [this message]
2021-07-20  1:39                     ` Randy Dunlap
2021-07-20  2:07                       ` Paul E. McKenney

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=20210718210854.GP4397@paulmck-ThinkPad-P17-Gen-1 \
    --to=paulmck@kernel.org \
    --cc=andrii@kernel.org \
    --cc=apw@canonical.com \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=jiangshanlai@gmail.com \
    --cc=joe@perches.com \
    --cc=joel@joelfernandes.org \
    --cc=john.fastabend@gmail.com \
    --cc=josh@joshtriplett.org \
    --cc=kafai@fb.com \
    --cc=kpsingh@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@kernel.org \
    --cc=rcu@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=songliubraving@fb.com \
    --cc=yhs@fb.com \
    --cc=zhouzhouyi@gmail.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.