Thread (21 messages) 21 messages, 3 authors, 2021-05-24

Re: [PATCH 5/6] mm/page_alloc: Limit the number of pages on PCP lists when reclaim is active

From: Dave Hansen <hidden>
Date: 2021-05-21 22:44:57
Also in: lkml

On 5/21/21 3:28 AM, Mel Gorman wrote:
+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?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help