Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's ->high and ->batch
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/
Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's ->high and ->batch
On 04/06/2013 06:32 PM, Simon Jeons wrote: Hi Cody, On 04/06/2013 04:33 AM, 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). Do you mean stop_machine() is used for syncronization between each online cpu? I mean that it looks like synchronization between cpus is unneeded because of how per cpu pagesets are used, so stop_machine() (which does provide syncro between all cpus) is unnecessarily "strong". -- 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/
Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's ->high and ->batch
(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/
Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's ->high and ->batch
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. -- 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/
Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's -high and -batch
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. -- 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/
Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's -high and -batch
(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/
Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's -high and -batch
On 04/06/2013 06:32 PM, Simon Jeons wrote: Hi Cody, On 04/06/2013 04:33 AM, 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). Do you mean stop_machine() is used for syncronization between each online cpu? I mean that it looks like synchronization between cpus is unneeded because of how per cpu pagesets are used, so stop_machine() (which does provide syncro between all cpus) is unnecessarily strong. -- 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/
Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's -high and -batch
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/
Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's ->high and ->batch
(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. -- 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/
Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's -high and -batch
(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. -- 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/
Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's ->high and ->batch
Hi Cody, On 04/06/2013 04:33 AM, 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). Do you mean stop_machine() is used for syncronization between each online cpu? 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. -- mm/page_alloc.c | 63 +++-- 1 file changed, 30 insertions(+), 33 deletions(-) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majord...@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: mailto:"d...@kvack.org;> em...@kvack.org -- 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/
Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's -high and -batch
Hi Cody, On 04/06/2013 04:33 AM, 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). Do you mean stop_machine() is used for syncronization between each online cpu? 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. -- mm/page_alloc.c | 63 +++-- 1 file changed, 30 insertions(+), 33 deletions(-) -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majord...@kvack.org. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: a href=mailto:d...@kvack.org; em...@kvack.org /a -- 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/
[PATCH 0/3] mm: fixup changers of per cpu pageset's ->high and ->batch
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. -- mm/page_alloc.c | 63 +++-- 1 file changed, 30 insertions(+), 33 deletions(-) -- 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/
[PATCH 0/3] mm: fixup changers of per cpu pageset's -high and -batch
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. -- mm/page_alloc.c | 63 +++-- 1 file changed, 30 insertions(+), 33 deletions(-) -- 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/