All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
To: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: John Kacur <jkacur@redhat.com>,
	tglx@linutronix.de, linux-rt-users@vger.kernel.org,
	Ingo Molnar <mingo@elte.hu>, Clark Williams <williams@redhat.com>
Subject: Re: Real-time projects that could use userspace RCU
Date: Tue, 11 May 2010 08:21:29 -0700	[thread overview]
Message-ID: <20100511152129.GD2336@linux.vnet.ibm.com> (raw)
In-Reply-To: <20100511144337.GB17656@Krystal>

On Tue, May 11, 2010 at 10:43:37AM -0400, Mathieu Desnoyers wrote:
> * Paul E. McKenney (paulmck@linux.vnet.ibm.com) wrote:
> > On Tue, May 11, 2010 at 09:14:04AM -0400, Mathieu Desnoyers wrote:
> > > * John Kacur (jkacur@redhat.com) wrote:
> > > > On Tue, May 11, 2010 at 2:21 PM, Mathieu Desnoyers
> > > > <mathieu.desnoyers@efficios.com> wrote:
> > > > > Hi Thomas,
> > > > >
> > > > > Paul told me you were quite interested in the userspace RCU library when he told
> > > > > you about it (http://lttng.org/urcu). Do you have some userspace applications or
> > > > > libraries with real-time needs in mind that could use it ? We could help moving
> > > > > them to liburcu. The wait-free read-side is, as you certainly know, a
> > > > > characteristic of RCU that can be very useful to RT applications.
> > > > >
> > > > > [CCing linux-rt-users, as it seems appropriate to ask them too.]
> > > > >
> > > > > Thanks,
> > > > 
> > > > Do you have any kind of benchmarks? If you had something appropriate
> > > > we could add it to the rt-tests suite (which includes cyclictest). Not
> > > > only would this provide an objective measure, but it could also act as
> > > > a reference implementation for userspace programmers.
> > > 
> > > Yes, the library already has its set of benchmark test programs. The results can
> > > be found in http://lttng.org/pub/thesis/desnoyers-dissertation-2009-12.pdf
> > > section 6.5. It shows that RCU read-side is a few orders of magnitude faster
> > > than lock-based approaches and scales linearly with the number of cores.
> > > 
> > > The same PDF, sections 7.6.2 and 7.6.3, presents the architecture-level modeling
> > > of the RCU mb algorithm in Promela, along with the formal proof by model
> > > checking for both correctness and progress (the read-side is proven wait-free).
> > > 
> > > > 
> > > > See here.
> > > > git clone git://git.kernel.org/pub/scm/linux/kernel/git/clrkwllms/rt-tests.git
> > > > 
> > > > cyclictest is the original program written by Thomas, maintained by
> > > > Clark Williams now. Most - but not all, of the additional tests are
> > > > modelled after this program, so you might want to have a look at that
> > > > if you're not already familiar with it.
> > > 
> > > Thanks for the pointer, I did know about cyclictest, but not the others. Since
> > > the read-side does not involve the OS nor blocking, I wonder which of these
> > > tests would be even a near-match though.
> > 
> > Why not add mutual-exclusion tests, including locking, per-thread locking,
> > reader-writer locking, and RCU?  The figure of merit would be maximum
> > latency rather than throughput, but the existing userspace-rcu tests should
> > be pretty close.
> > 
> 
> Do you mean adding our RCU tests to the rt-tests.git tree or adding more
> information in our own tests ? Also, the maximum latency is quite dependent on
> the rest of the workload running on the system, so we might have to generate
> such a workload while the test runs to give an interesting and accurate view of
> the maximum latency.
> 
> Maybe running one (or many) of the already existing rt-tests in parallel would
> do.
> 
> Thoughts ?

My thought was a variant of our existing RCU tests.  Something like:

	clock_gettime();
	pthread_mutex_lock();
	clock_gettime();
	/* compute latency, accumulate average and maximum */

The test thread would need to have real-time priority.  Then print the
maximums for various mechanisms.

Does this seem like a reasonable approach?

							Thanx, Paul

  reply	other threads:[~2010-05-11 15:21 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-11 12:21 Real-time projects that could use userspace RCU Mathieu Desnoyers
2010-05-11 12:32 ` John Kacur
2010-05-11 13:14   ` Mathieu Desnoyers
2010-05-11 14:38     ` Paul E. McKenney
2010-05-11 14:43       ` Mathieu Desnoyers
2010-05-11 15:21         ` Paul E. McKenney [this message]
2010-06-13 20:51           ` Mathieu Desnoyers
2010-06-14  0:38             ` 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=20100511152129.GD2336@linux.vnet.ibm.com \
    --to=paulmck@linux.vnet.ibm.com \
    --cc=jkacur@redhat.com \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=mathieu.desnoyers@efficios.com \
    --cc=mingo@elte.hu \
    --cc=tglx@linutronix.de \
    --cc=williams@redhat.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.