On Fri, 11 May 2012, Andrew Morton wrote: > > > > [67031.755786] BUG: Bad page state in process wcg_gfam_6.11_i pfn:02519 > > [67031.755790] page:ffffea0000094640 count:0 mapcount:0 mapping: > > (null) index:0x7f1eb293b > > [67031.755792] page flags: 0x4000000000000014(referenced|dirty) > > AFAICT we got this warning because the page allocator found a free page > with PG_referenced and PG_dirty set. > > It would be a heck of a lot more useful if we'd been told about this > when the page was freed, not when it was reused! Can anyone think of a > reason why PAGE_FLAGS_CHECK_AT_FREE doesn't include these flags (at > least)? Because those flags may validly be set when a page is freed (I do have an old patch to change anon dirty handling to stop that, but it's not really needed). They are then immediately cleared, along with all other page flags. So if page allocation finds any page flags set, it happened while the page was supposedly free. The only thought I have on this report: what binutils was used to build this kernel? We had "Bad page" and isolate_lru_pages BUG reports at the start of the month, and they were traced to buggy binutils 2.22.52.0.2 Hugh Hugh -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>