All of lore.kernel.org
 help / color / mirror / Atom feed
From: michi1@michaelblizek.twilightparadox.com (michi1 at michaelblizek.twilightparadox.com)
To: kernelnewbies@lists.kernelnewbies.org
Subject: Is writer starvation a potential problem with RCU?
Date: Sat, 7 Feb 2015 10:28:53 +0100	[thread overview]
Message-ID: <20150207092852.GA4215@grml> (raw)
In-Reply-To: <4E5779AD88B2F040B8A7E83ECF544D1A5AC7E7@SJCPEX01CL03.citrite.net>

Hi!

On 18:19 Fri 06 Feb     , Jeff Haran wrote:
> I've read that the Linux implementation of read-write locks (rwlock_t) can suffer from so called "writer starvation", whereby threads that take a read lock on a read-write lock can prevent threads attempting to take a write lock on the same read-write lock from ever acquiring the lock because there is no queuing of the readers and writers. If the lock is held for read access, any subsequent reader will get the lock even if a write lock attempt is already in progress.
> 
> Does anybody happen to know whether or not RCU has a similar issue?

Why should it have this issue?

An RCU read is basically an atomic pointer read. One writer and multiple
readers can run concurrently. When the writer is finished, it updates the
atomic pointer.

The issue you may need to worry about is freeing the memory of the old
pointer. This can only be done after all readers have finished (see
synchronize_rcu() and call_rcu()). Depending on what you do, you may see high
memory usage or writers which are blocked waiting for readers to finish.

	-Michi
-- 
programing a layer 3+4 network protocol for mesh networks
see http://michaelblizek.twilightparadox.com

  reply	other threads:[~2015-02-07  9:28 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-06 18:19 Is writer starvation a potential problem with RCU? Jeff Haran
2015-02-07  9:28 ` michi1 at michaelblizek.twilightparadox.com [this message]
2015-02-09 17:24   ` Jeff Haran

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=20150207092852.GA4215@grml \
    --to=michi1@michaelblizek.twilightparadox.com \
    --cc=kernelnewbies@lists.kernelnewbies.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 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.