All of lore.kernel.org
 help / color / mirror / Atom feed
From: Waiman Long <waiman.long@hp.com>
To: Al Viro <viro@ZenIV.linux.org.uk>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	"Chandramouleeswaran, Aswin" <aswin@hp.com>,
	"Norton, Scott J" <scott.norton@hp.com>
Subject: Re: [PATCH 1/2] seqlock: Add a new blocking reader type
Date: Wed, 11 Sep 2013 12:33:35 -0400	[thread overview]
Message-ID: <52309B5F.70406@hp.com> (raw)
In-Reply-To: <20130911145536.GJ13318@ZenIV.linux.org.uk>

On 09/11/2013 10:55 AM, Al Viro wrote:
> On Wed, Sep 11, 2013 at 10:28:26AM -0400, Waiman Long wrote:
>> The sequence lock (seqlock) was originally designed for the cases
>> where the readers do not need to block the writers by making the
>> readers retry the read operation when the data change.
>>
>> Since then, the use cases have been expanded to include situations
>> where a thread does not need to change the data (effectively a reader)
>> at all but have to take the writer lock because it can't tolerate
>> changes to the protected structure. Some examples are the d_path()
>> function and the getcwd() syscall in fs/dcache.c where the functions
>> take the writer lock on rename_lock even though they don't need
>> to change anything in the protected data structure at all. This is
>> inefficient as a reader is now blocking other non-blocking readers
>> by pretending to be a writer.
>>
>> This patch tries to eliminate this inefficiency by introducing a new
>> type of blocking reader to the seqlock locking mechanism. This new
>> blocking reader will not block other non-blocking readers, but will
>> block other blocking readers and writers.
> Umm...  That's misleading - it doesn't _block_, it spins.  Moroever,
> seq_readbegin() also spins in presense of writer; the main property
> of this one is that it keeps writers away.

I used "block" in the sense that it will stop a writer from moving 
forward. I will update the commit log to make that more clear.
> Folks, any suggestions on better names?  The semantics we are getting is

I will welcome any better name suggestion and will incorporate that in 
the patch.

-Longman

  reply	other threads:[~2013-09-11 16:33 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-11 14:28 [PATCH 1/2] seqlock: Add a new blocking reader type Waiman Long
2013-09-11 14:28 ` [PATCH 2/2] dcache: use read_seqlock/unlock() in read_seqbegin_or_lock() & friend Waiman Long
2013-09-11 14:55 ` [PATCH 1/2] seqlock: Add a new blocking reader type Al Viro
2013-09-11 16:33   ` Waiman Long [this message]
2013-09-11 17:26     ` Al Viro
2013-09-11 18:34       ` Waiman Long
2013-09-11 18:40       ` J. Bruce Fields
2013-09-11 18:52         ` Al Viro

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=52309B5F.70406@hp.com \
    --to=waiman.long@hp.com \
    --cc=aswin@hp.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=scott.norton@hp.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=viro@ZenIV.linux.org.uk \
    /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.