[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1191078095.18147.126.camel@lappy>
Date: Sat, 29 Sep 2007 17:01:34 +0200
From: Peter Zijlstra <a.p.zijlstra@...llo.nl>
To: Nick Piggin <nickpiggin@...oo.com.au>
Cc: lkml <linux-kernel@...r.kernel.org>, linux-arch@...r.kernel.org,
Zach Brown <zach.brown@...cle.com>,
Ingo Molnar <mingo@...e.hu>, akpm@...ux-foundation.org
Subject: Re: [PATCH 05/12] mm: trylock_page
On Fri, 2007-09-28 at 13:11 +1000, Nick Piggin wrote:
> On Friday 28 September 2007 17:42, Peter Zijlstra wrote:
> > Replace raw TestSetPageLocked() usage with trylock_page()
>
> I have such a thing queued too, for the lock bitops patches for when 2.6.24
> opens, Andrew promises me :).
>
> I guess they should be identical, except I don't like doing trylock_page in
> place of SetPageLocked, for memory ordering performance and aesthetic
> reasons... I've got an init_page_locked (or set_page_locked... I can't
> remember, the patch is at home).
Sure, that might work, or we could just make it so that add_to_*_cache
is never passed an unlocked page. But sure...
> Fine idea to lockdep the page lock, anyway. Does it show up any of the
> buffered write deadlock possibilities? :)
Not yet, it might just be that the concessions done to annotate this
type of lock were too severe.
What I basically did was treat all the page locks as a single recursive
lock.
> buffer lock is another notable bit-mutex that might be converted (I have
> the patch to do the similar nice !tas->trylock conversion for that too). I
> think it is used widely enough by tricky code that it would be useful to
> annotate as well.
Not at all familiar with that lock, but yeah, we could have a look at
doing that too.
> Unfortunately we can't convert bit_spinlock.h easily, I guess?
Yeah, the space constraints make that rather hard. Each of these locks
needs some form of external meta-data.
For the page lock I used one lock instance per file system type.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists