Messages in this thread | | | Subject | Re: [PATCH 5/6] mm/page_alloc: Limit the number of pages on PCP lists when reclaim is active | From | Dave Hansen <> | Date | Fri, 21 May 2021 15:44:49 -0700 |
| |
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?
| |