On 04/08/2013 12:08 PM, KOSAKI Motohiro wrote: > (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.
zone_pcp_update() is not part of the drain retry loop, in the offline pages case, it is only called following success in "removal" (online pages also calls zone_pcp_update(), I don't see how it could benifit in any way from draining the per cpu pagesets). So I still don't see where the need for draining pages combined with modifying ->high and ->batch came from. -- 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/