On Thu, Jun 06, 2019 at 03:20:49PM +0200, balducci@xxxxxxxx wrote: > > Can you try the following compile-tested only patch please? > > > > diff --git a/mm/compaction.c b/mm/compaction.c > > index 9e1b9acb116b..b3f18084866c 100644 > > --- a/mm/compaction.c > > +++ b/mm/compaction.c > > @@ -277,8 +277,7 @@ __reset_isolation_pfn(struct zone *zone, unsigned long pf > > n, bool check_source, > > } > > > > /* Ensure the end of the pageblock or zone is online and valid */ > > - block_pfn += pageblock_nr_pages; > > - block_pfn = min(block_pfn, zone_end_pfn(zone) - 1); > > + block_pfn = min(pageblock_end_pfn(block_pfn), zone_end_pfn(zone) - 1); > > end_page = pfn_to_online_page(block_pfn); > > if (!end_page) > > return false; > > > > Unfortunately it doesn't help: the test firefox build very soon crashed > as before; this time the machine froze completely (had to hardware > reboot) and I couldn't find any kernel log in the log files (however the > screen of the frozen console looked pretty the same as the previous > times) > Thanks. > (I applied the patch on top of e577c8b64d58fe307ea4d5149d31615df2d90861, > right?) Please try the following on top of 5.2-rc3 diff --git a/mm/compaction.c b/mm/compaction.c index 9e1b9acb116b..69f4ddfddfa4 100644 --- a/mm/compaction.c +++ b/mm/compaction.c @@ -277,8 +277,7 @@ __reset_isolation_pfn(struct zone *zone, unsigned long pfn, bool check_source, } /* Ensure the end of the pageblock or zone is online and valid */ - block_pfn += pageblock_nr_pages; - block_pfn = min(block_pfn, zone_end_pfn(zone) - 1); + block_pfn = min(pageblock_end_pfn(block_pfn), zone_end_pfn(zone) - 1); end_page = pfn_to_online_page(block_pfn); if (!end_page) return false; @@ -289,7 +288,7 @@ __reset_isolation_pfn(struct zone *zone, unsigned long pfn, bool check_source, * is necessary for the block to be a migration source/target. */ do { - if (pfn_valid_within(pfn)) { + if (pfn_valid(pfn)) { if (check_source && PageLRU(page)) { clear_pageblock_skip(page); return true;