On 1/4/19 1:49 PM, Mel Gorman wrote: > When pageblocks get fragmented, watermarks are artifically boosted to > reclaim pages to avoid further fragmentation events. However, compaction > is often either fragmentation-neutral or moving movable pages away from > unmovable/reclaimable pages. As the true watermarks are preserved, allow > compaction to ignore the boost factor. > > The expected impact is very slight as the main benefit is that compaction > is slightly more likely to succeed when the system has been fragmented > very recently. On both 1-socket and 2-socket machines for THP-intensive > allocation during fragmentation the success rate was increased by less > than 1% which is marginal. However, detailed tracing indicated that > failure of migration due to a premature ENOMEM triggered by watermark > checks were eliminated. > > Signed-off-by: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> Acked-by: Vlastimil Babka <vbabka@xxxxxxx> > --- > mm/page_alloc.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/mm/page_alloc.c b/mm/page_alloc.c > index 57ba9d1da519..05c9a81d54ed 100644 > --- a/mm/page_alloc.c > +++ b/mm/page_alloc.c > @@ -2958,7 +2958,7 @@ int __isolate_free_page(struct page *page, unsigned int order) > * watermark, because we already know our high-order page > * exists. > */ > - watermark = min_wmark_pages(zone) + (1UL << order); > + watermark = zone->_watermark[WMARK_MIN] + (1UL << order); > if (!zone_watermark_ok(zone, 0, watermark, 0, ALLOC_CMA)) > return 0; > >