(4/8/13 1:16 PM), Cody P Schafer wrote: > On 04/07/2013 08:23 AM, KOSAKI Motohiro wrote: >> (4/5/13 4:33 PM), Cody P Schafer wrote: >>> In one case while modifying the ->high and ->batch fields of per cpu >>> pagesets >>> we're unneededly using stop_machine() (patches 1 & 2), and in another we >>> don't have any >>> syncronization at all (patch 3). >>> >>> This patchset fixes both of them. >>> >>> Note that it results in a change to the behavior of zone_pcp_update(), >>> which is >>> used by memory_hotplug. I _think_ that I've diserned (and preserved) the >>> essential behavior (changing ->high and ->batch), and only eliminated >>> unneeded >>> actions (draining the per cpu pages), but this may not be the case. >> >> at least, memory hotplug need to drain. > > Could you explain why the drain is required here? From what I can tell, > after the stop_machine() completes, the per cpu page sets could be > repopulated at any point, making the combination of draining and > modifying ->batch & ->high uneeded.
Then, memory hotplug again and again try to drain. Moreover hotplug prevent repopulation by using MIGRATE_ISOLATE. pcp never be page count == 0 and it prevent memory hot remove. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/