Hi Pierre, On Tue, Mar 10, 2009 at 10:41:35AM +0800, Wu Fengguang wrote: > On Mon, Mar 09, 2009 at 05:02:16PM +0200, Pierre Ossman wrote: > > On Mon, 9 Mar 2009 22:22:41 +0800 > > Wu Fengguang wrote: > > > > > > > > Thanks for the data! Now it seems that some pages are totally missing > > > from bootmem or slabs or page cache or any application consumptions... > > > > > > > So it isn't just me that's blind. That's something I guess. :) > > > > > Will searching through /proc/kpageflags for reserved pages help > > > identify the problem? > > > > > > Oh kpageflags_read() does not include support for PG_reserved: > > > > > > > I can probably hack together something that outputs the served pages. > > Anything else that is of interest? Here is the initial patch and tool for finding the missing pages. In the following example, the pages with no flags set is kind of too many (1816MB), but hopefully your missing pages will have PG_reserved or other flags set ;-) # ./page-types L:locked E:error R:referenced U:uptodate D:dirty L:lru A:active S:slab W:writeback x:reclaim B:buddy r:reserved c:swapcache b:swapbacked flags symbolic-flags page-count MB 0x0000 ______________ 464967 1816 0x0004 __R___________ 1 0 0x0008 ___U__________ 2 0 0x0014 __R_D_________ 5 0 0x0020 _____L________ 1 0 0x0028 ___U_L________ 5956 23 0x002c __RU_L________ 5415 21 0x0038 ___UDL________ 7 0 0x0068 ___U_LA_______ 520 2 0x006c __RU_LA_______ 2083 8 0x0080 _______S______ 10820 42 0x0228 ___U_L___x____ 104 0 0x022c __RU_L___x____ 52 0 0x0268 ___U_LA__x____ 22 0 0x026c __RU_LA__x____ 95 0 0x0400 __________B___ 477 1 0x0800 ___________r__ 18734 73 0x2008 ___U_________b 9 0 0x2068 ___U_LA______b 4644 18 0x206c __RU_LA______b 33 0 0x2078 ___UDLA______b 4 0 0x207c __RUDLA______b 17 0 total 513968 2007 Thanks, Fengguang