linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@kernel.org>
To: Liam Howlett <liam.howlett@oracle.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>
Subject: Re: RCU tests for Maple Tree
Date: Mon, 17 May 2021 09:53:10 -0700	[thread overview]
Message-ID: <20210517165310.GA2013824@paulmck-ThinkPad-P17-Gen-1> (raw)
In-Reply-To: <20210517165004.GI4441@paulmck-ThinkPad-P17-Gen-1>

On Mon, May 17, 2021 at 09:50:04AM -0700, Paul E. McKenney wrote:
> On Mon, May 17, 2021 at 04:30:53PM +0000, Liam Howlett wrote:
> > * Paul E. McKenney <paulmck@kernel.org> [210517 11:40]:
> > > Hello, Liam!
> > > 
> > > Apologies for my being so slow here, but just wanted to double-check my
> > > understanding of this code.
> > > 
> > > There appear to be two tests that execute from run_check_rcu():
> > > 
> > > o	rcu_loop().  This appears to have RCU readers scanning the tree
> > > 	while an updater is adding a single range.  (Or replacing it,
> > > 	as the case might be.)
> > > 
> > > o	rcu_val().  This appears to have RCU readers repeatedly reading a
> > > 	given value while an updater is adding/replacing a single range.
> > > 	The test complains if no one sees the new value.
> > > 
> > > These tests appear to be the only use of threads, though perhaps the
> > > test harness has some way of creating threads that I missed.
> > > 
> > > Are there other tests that I should be looking for?
> > 
> > No, those are the only ones I'm running with threads right now.  I think
> > all RCU tests are run from check_rcu() iirc.  This did yield results of
> > failures that had to be addressed so I'm somewhat confident that it's
> > actually working.
> 
> OK, I guess I can feel relieved that I can still read code.  ;-)

Oh, and I should hasten to add that for a data structure fully protected
by a reader-writer lock, sequential tests can be reasonably effective.
At least assuming readers really truly only read...

							Thanx, Paul

> > >From your wording I'm gathering I need to increase this by a lot more
> > test cases?
> 
> I would feel better with the addition of something that looked more
> like a stress test.  For but one example, is there some combination
> of several successive update operations that can mess up slow readers
> (that is, readers that are interrupted or preempted, and thus have
> multiple updates happen while they are traversing the tree)?  If so,
> the current tests will not find it.
> 
> 							Thanx, Paul


      reply	other threads:[~2021-05-17 16:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-17 15:40 Paul E. McKenney
2021-05-17 16:30 ` Liam Howlett
2021-05-17 16:50   ` Paul E. McKenney
2021-05-17 16:53     ` Paul E. McKenney [this message]

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=20210517165310.GA2013824@paulmck-ThinkPad-P17-Gen-1 \
    --to=paulmck@kernel.org \
    --cc=liam.howlett@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox