Messages in this thread | | | Date | Thu, 04 Sep 2008 09:18:20 -0500 | From | Christoph Lameter <> | Subject | Re: [PATCH 4/4] capture pages freed during direct reclaim for allocation by the reclaimer |
| |
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)
| |