Thread (13 messages) 13 messages, 6 authors, 2012-01-20

Re: working on extent locks for i_mutex

From: Allison Henderson <hidden>
Date: 2012-01-16 17:47:45

On 01/15/2012 04:57 PM, Dave Chinner wrote:
On Fri, Jan 13, 2012 at 01:50:52PM -0700, Allison Henderson wrote:
quoted
On 01/12/2012 09:34 PM, Dave Chinner wrote:
quoted
On Thu, Jan 12, 2012 at 08:01:43PM -0700, Allison Henderson wrote:
quoted
Hi All,

I know this is an old topic, but I am poking it again because I've
had some work items wrap up, and Im planning on picking up on this
one again.  I am thinking about implementing extent locks to replace
i_mutex.  So I just wanted to touch base with folks and see what
people are working on because I know there were some folks out there
that were thing about doing similar solutions.
What locking API are you looking at? If you are looking at an
something like:

read_range_{try}lock(lock, off, len)
read_range_unlock(lock, off, len)
write_range_{try}lock(lock, off, len)
write_range_unlock(lock, off, len)

and implementing with an rbtree or a btree for tracking, then I
definitely have a use for it in XFS - replacing the current rwsem
that is used for the iolock. Range locks like this are the only
thing we need to allow concurrent buffered writes to the same file
to maintain the per-write exclusion that posix requires.
Yes that is generally the idea I was thinking about doing, but at
the time, I was not thinking outside the scope of ext4.  You are
thinking maybe it should be in vfs layer so that it's something that
all the filesystems will use?  That seems to be the impression I'm
getting from folks.  Thx!
Yes, that's what I'm suggesting. Not so much a vfs layer function,
but a library (range locks could be useful outside filesystems) so
locating it in lib/ was what I was thinking....

Cheers,

Dave.
Alrighty, that sounds good to me.  I will aim to keep it as general 
purpose as I can.  I am going to start some proto typing and will post 
back when I get something working.  Thx for the feedback all!  :)

Allison
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help