Hi, When memory nodes overlap each other, the bootmem allocator is not aware of this and might pass the same page twice to __free_pages_bootmem(). As I traced the code, this should result in bad_page() calls on every boot but noone has yet reported something like this and I am wondering why. __free_pages_bootmem() boils down to either free_hot_cold_page() or __free_one_page(). Either path should lead to setting the page private or buddy: free_hot_cold_page() sets ->private to the page block's migratetype (and sets PG_private). __free_one_page sets ->private to the page's order (and sets PG_private and PG_buddy). If a page is passed in twice, free_pages_check() should now warn (via bad_page()) on the flags set above. Am I missing something? Thanks in advance. Hannes --
| Jens Axboe | Re: [BUG] New Kernel Bugs |
| KAMEZAWA Hiroyuki | Re: 2.6.24-rc3-mm1 |
| Ingo Molnar | Re: [Announce] [patch] Modular Scheduler Core and Completely Fair Scheduler [CFS] |
| Greg Kroah-Hartman | [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 27/37] dccp: Integration of dynamic feature activation - part 2 (server side) |
| Jarek Poplawski | Re: Data corruption issue with splice() on 2.6.27.10 |
| Patrick McHardy | Re: [GIT]: Networking |
