Re: [PATCH 4/4] capture pages freed during direct reclaim for allocationby the reclaimer

From: Christoph Lameter
Date: Thu Sep 04 2008 - 10:19:03 EST


Peter Zijlstra wrote:
> On Wed, 2008-09-03 at 16:00 -0500, Christoph Lameter wrote:
>> Andy Whitcroft wrote:
>>
>>>
>>> #ifndef __GENERATING_BOUNDS_H
>>> @@ -208,6 +211,9 @@ __PAGEFLAG(SlubDebug, slub_debug)
>>> */
>>> TESTPAGEFLAG(Writeback, writeback) TESTSCFLAG(Writeback, writeback)
>>> __PAGEFLAG(Buddy, buddy)
>>> +PAGEFLAG(BuddyCapture, buddy_capture) /* A buddy page, but reserved. */
>>> + __SETPAGEFLAG(BuddyCapture, buddy_capture)
>>> + __CLEARPAGEFLAG(BuddyCapture, buddy_capture)
>> Doesnt __PAGEFLAG do what you want without having to explicitly specify
>> __SET/__CLEAR?
>
> PAGEFLAG() __PAGEFLAG()
>
> does TESTPAGEFLAG() double.
>

Usually one either wants the atomic versions or the non atomic versions. This
usage seems to be mainly non atomic plus one use of ClearPageBuddy() in
capture_or_return() (Which raises some questions about how the bit
modifications are serialized. Is there concurrency during free?)

So

__PAGEFLAG(BuddyCapture, buddy_capture)
CLEARPAGEFLAG(BuddyCapture, buddy_capture)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/