Re: [PATCH 5/6] mm/page_alloc: Limit the number of pages on PCP lists when reclaim is active
From: Mel Gorman <hidden>
Date: 2021-05-24 09:22:31
Also in:
lkml
From: Mel Gorman <hidden>
Date: 2021-05-24 09:22:31
Also in:
lkml
On Fri, May 21, 2021 at 03:44:49PM -0700, Dave Hansen wrote:
On 5/21/21 3:28 AM, Mel Gorman wrote:quoted
+static int nr_pcp_high(struct per_cpu_pages *pcp, struct zone *zone) +{ + int high = READ_ONCE(pcp->high); + + if (unlikely(!high)) + return 0; + + if (!test_bit(ZONE_RECLAIM_ACTIVE, &zone->flags)) + return high; + + /* + * If reclaim is active, limit the number of pages that can be + * stored on pcp lists + */ + return READ_ONCE(pcp->batch) << 2; +}Should there be a sanity check on this? Let's say we had one of those weirdo zones with tons of CPUs and a small low_wmark_pages(). Could we have a case where: pcp->high < pcp->batch<<2 and this effectively *raises* nr_pcp_high()? It's not possible with the current pcp->high calculation, but does anything prevent it now?
I don't think it would happen as pcp->batch is reduced for small zones but a sanity check does not hurt so I added one. -- Mel Gorman SUSE Labs