On Mon, Sep 07, 2020 at 06:36:27PM +0200, Vlastimil Babka wrote: */ > -static void setup_pageset(struct per_cpu_pageset *p); > +static void pageset_init(struct per_cpu_pageset *p); this belongs to the respective patches > -static void zone_set_pageset_high_and_batch(struct zone *zone) > +static void zone_set_pageset_high_and_batch(struct zone *zone, bool force_update) > { > unsigned long new_high; > unsigned long new_batch; > @@ -6256,6 +6256,14 @@ static void zone_set_pageset_high_and_batch(struct zone *zone) > new_batch = max(1UL, 1 * new_batch); > } > > + if (zone->pageset_high != new_high || > + zone->pageset_batch != new_batch) { > + zone->pageset_high = new_high; > + zone->pageset_batch = new_batch; > + } else if (!force_update) { > + return; > + } I am probably missimg something obvious, so sorry, but why do we need force_update here? AFAICS, we only want to call pageset_update() in case zone->pageset_high/batch and the new computed high/batch differs, so if everything is equal, why do we want to call it anyways? -- Oscar Salvador SUSE L3