mbox series

[0/1] VM_BUG_ON_PAGE(!zone_spans_pfn) in set_pfnblock_flags_mask

Message ID 20201121194506.13464-1-aarcange@redhat.com (mailing list archive)
Headers show
Series VM_BUG_ON_PAGE(!zone_spans_pfn) in set_pfnblock_flags_mask | expand

Message

Andrea Arcangeli Nov. 21, 2020, 7:45 p.m. UTC
Hello,

After hitting this twice on two different systems, I'm now running
with the tentative fix applied, but it's not a meaningful test since
it's non reproducible.

However it is possible to inject this bug if you do "grep E820
/proc/iomem" and then find a phys addr there with a struct page
(i.e. pfn_valid) in a zone, with this change:

	min_pfn = pageblock_start_pfn(cc->free_pfn - (distance >> 1));
+	if (cc->zone is the zone where the e820 physaddr has a pfn_valid)
+	   min_pfn = physaddr_of_E820_non_RAM_page_with_valid_pfn >> PAGE_SHIFT;

I didn't try to inject the bug to validate the fix and it'd be great
if someone can try that to validate this or any other fix.

Andrea Arcangeli (1):
  mm: compaction: avoid fast_isolate_around() to set pageblock_skip on
    reserved pages

 mm/compaction.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)