On Tue, Mar 10, 2009 at 08:22:10PM +0800, Wu Fengguang wrote: > On Tue, Mar 10, 2009 at 11:55:23AM +0200, Pierre Ossman wrote: > > On Tue, 10 Mar 2009 16:19:17 +0800 > > Wu Fengguang wrote: > > > > > > > > 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 > > > > > > > Thanks. I'll have a look in a bit. Right now I'm very close to a > > complete bisect. It is just ftrace commits left though, so I'm somewhat > > sceptical that it is correct. ftrace isn't even turned on in the > > kernels I've been testing. > > > > The remaining commits are ec1bb60bb..6712e299. Another tool to show the page locations with specified flags: # ./page-areas 0x20000 | head offset len KB 11 1 4KB 13 3 12KB 17 7 28KB 25 1 4KB 31 1 4KB 33 31 124KB 65 63 252KB 129 15 60KB 145 7 28KB If we run eatmem or the following commands to take up free memory, the missing pages will show up :-) dd if=/dev/zero of=/tmp/s bs=1M count=1 seek=1024 cp /tmp/s /dev/null Thanks, Fengguang