Re: [PATCH RESEND v3 00/11] mm: fixup changers of per cpu pageset's->high and ->batch

From: Cody P Schafer
Date: Mon May 13 2013 - 16:48:09 EST


On 05/13/2013 12:20 PM, Pekka Enberg wrote:
Hi Cody,

On Mon, May 13, 2013 at 10:08 PM, Cody P Schafer
<cody@xxxxxxxxxxxxxxxxxx> wrote:
"Problems" with the current code:
1. there is a lack of synchronization in setting ->high and ->batch in
percpu_pagelist_fraction_sysctl_handler()
2. stop_machine() in zone_pcp_update() is unnecissary.
3. zone_pcp_update() does not consider the case where percpu_pagelist_fraction is non-zero

Maybe it's just me but I find the above problem description confusing.
How does the problem manifest itself?

1. I've not reproduced this causing issues.
2. Calling zone_pcp_update() is slow.
3. Not reproduced either, but would cause percpu_pagelist_fraction (set via sysctl) to be ignored after a call to zone_pcp_update() (for example, after a memory hotplug).

How did you find about it?

I'm writing some code that resizes zones and thus uses zone_pcp_update(), and fixing broken things along the way.

Why
do we need to fix all three problems in the same patch set?

They all affect the same bit of code and fixing all of them means restructuring the both of the sites where ->high and ->batch are set.

Additionally, splitting it out (if possible) would make it less clear what the overall goal is, and would mean a few inter-patchset dependencies, which are undesirable.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/