From: josh@joshtriplett.org (Josh Triplett)
Subject: [ltt-dev] Userspace RCU TODO list
Date: Fri, 18 Jun 2010 12:47:36 -0700 [thread overview]
Message-ID: <20100618194735.GA20136@feather> (raw)
In-Reply-To: <20100618185331.GB23472@Krystal>
On Fri, Jun 18, 2010 at 02:53:31PM -0400, Mathieu Desnoyers wrote:
> * Paul E. McKenney (paulmck at linux.vnet.ibm.com) wrote:
> > I do have a few
> > simple RCU-protected stack/queue things.
>
> Yep, that would be useful. Ideally if we can use read locks to deal with ABA
> problems, thus being able to enqueue and dequeue locklessly, that would be
> ideal. I have a lock-free queue implementation from Paolo Bonzini around. I'll
> push it in a urcu repo branch: "lflist".
That sounds quite interesting; we haven't combined non-blocking
operations with RCU before.
> > Josh Triplett has done some
> > resizable hash-table work, as has Herbert Xu.
>
> Yep, that would be interesting to add. I just wonder about their use of
> spinlocks in there for updates (as far as I remember Josh did use locks for
> updates). I think hash tables could benefit from using the read lock on the
> update-side to deal with ABA without locking.
My work definitely doesn't do lockless updates, just lockless reads. It
does, however, manage to resize with concurrent readers.
> The urcu/ht branch implements some of these ideas. Again, this is a development
> branch, so don't use it for production yet! In this scheme, resizes are
> protected with mutexes (and when resize are ongoing, all updates are waiting),
> but in the general case, an ABA-safe lockless scheme is used for insertion,
> steal and delete.
OK, so resize still blocks resizes and updates, and your lockless
algorithm just applies to updates. That makes sense.
I've given some thought to resizing with concurrent updates, but
"thought" doesn't quite translate to "algorithm" yet. :)
> (Note: Josh, I am not sure my emails from @efficios.com will get to the
> rp-private mailing list. Can you add an exception ? Thanks!)
Done.
prev parent reply other threads:[~2010-06-18 19:47 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20100612005745.GA28682@linux.vnet.ibm.com>
2010-06-13 22:01 ` [ltt-dev] [PATCH RFC] Native ARM7L support Mathieu Desnoyers
2010-06-14 0:57 ` Paul E. McKenney
2010-06-14 2:12 ` Mathieu Desnoyers
2010-06-18 18:23 ` Paul E. McKenney
2010-06-18 18:53 ` [ltt-dev] Userspace RCU TODO list Mathieu Desnoyers
2010-06-18 19:47 ` Josh Triplett [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=20100618194735.GA20136@feather \
--to=josh@joshtriplett.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