Re: [PATCH 0/3] mm: fixup changers of per cpu pageset's ->high and ->batch

2013-04-08 Thread Cody P Schafer
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

2013-04-08 Thread Cody P Schafer

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

2013-04-08 Thread KOSAKI Motohiro
(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

2013-04-08 Thread Cody P Schafer
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

2013-04-08 Thread Cody P Schafer
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

2013-04-08 Thread KOSAKI Motohiro
(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

2013-04-08 Thread Cody P Schafer

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

2013-04-08 Thread Cody P Schafer
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

2013-04-07 Thread KOSAKI Motohiro
(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

2013-04-07 Thread KOSAKI Motohiro
(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

2013-04-06 Thread Simon Jeons

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

2013-04-06 Thread Simon Jeons

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

2013-04-05 Thread Cody P Schafer
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

2013-04-05 Thread Cody P Schafer
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/