Re: [PATCH 2/2 V2] slub, hotplug: ignore unrelated node's hot-adding and hot-removing

2012-10-31 Thread Pekka Enberg
On Wed, Oct 24, 2012 at 12:43 PM, Lai Jiangshan  wrote:
> SLUB only fucus on the nodes which has normal memory, so ignore the other
> node's hot-adding and hot-removing.
>
> Aka: if some memroy of a node(which has no onlined memory) is online,
> but this new memory onlined is not normal memory(HIGH memory example),
> we should not allocate kmem_cache_node for SLUB.
>
> And if the last normal memory is offlined, but the node still has memroy,
> we should remove kmem_cache_node for that node.(current code delay it when
> all of the memory is offlined)
>
> so we only do something when marg->status_change_nid_normal > 0.
> marg->status_change_nid is not suitable here.
>
> The same problem doesn't exsit in SLAB, because SLAB allocates kmem_list3
> for every node even the node don't have normal memory, SLAB tolerates
> kmem_list3 on alien nodes. SLUB only fucus on the nodes which has normal
> memory, it don't tolerates alien kmem_cache_node, the patch makes
> SLUB become self-compatible and avoid WARN and BUG in a rare condition.
>
> CC: David Rientjes 
> Cc: Minchan Kim 
> CC: KOSAKI Motohiro 
> CC: Yasuaki Ishimatsu 
> CC: Rob Landley 
> CC: Andrew Morton 
> CC: Jiang Liu 
> CC: Kay Sievers 
> CC: Greg Kroah-Hartman 
> CC: Mel Gorman 
> CC: 'FNST-Wen Congyang' 
> CC: linux-...@vger.kernel.org
> CC: linux-kernel@vger.kernel.org
> CC: linux...@kvack.org
> Signed-off-by: Lai Jiangshan 

The patch looks OK but changelog doesn't say what problem this fixes,
how you found about it, and do we need this in stable.
--
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 2/2 V2] slub, hotplug: ignore unrelated node's hot-adding and hot-removing

2012-10-31 Thread Pekka Enberg
On Wed, Oct 24, 2012 at 12:43 PM, Lai Jiangshan la...@cn.fujitsu.com wrote:
 SLUB only fucus on the nodes which has normal memory, so ignore the other
 node's hot-adding and hot-removing.

 Aka: if some memroy of a node(which has no onlined memory) is online,
 but this new memory onlined is not normal memory(HIGH memory example),
 we should not allocate kmem_cache_node for SLUB.

 And if the last normal memory is offlined, but the node still has memroy,
 we should remove kmem_cache_node for that node.(current code delay it when
 all of the memory is offlined)

 so we only do something when marg-status_change_nid_normal  0.
 marg-status_change_nid is not suitable here.

 The same problem doesn't exsit in SLAB, because SLAB allocates kmem_list3
 for every node even the node don't have normal memory, SLAB tolerates
 kmem_list3 on alien nodes. SLUB only fucus on the nodes which has normal
 memory, it don't tolerates alien kmem_cache_node, the patch makes
 SLUB become self-compatible and avoid WARN and BUG in a rare condition.

 CC: David Rientjes rient...@google.com
 Cc: Minchan Kim minchan@gmail.com
 CC: KOSAKI Motohiro kosaki.motoh...@jp.fujitsu.com
 CC: Yasuaki Ishimatsu isimatu.yasu...@jp.fujitsu.com
 CC: Rob Landley r...@landley.net
 CC: Andrew Morton a...@linux-foundation.org
 CC: Jiang Liu jiang@huawei.com
 CC: Kay Sievers kay.siev...@vrfy.org
 CC: Greg Kroah-Hartman gre...@suse.de
 CC: Mel Gorman mgor...@suse.de
 CC: 'FNST-Wen Congyang' we...@cn.fujitsu.com
 CC: linux-...@vger.kernel.org
 CC: linux-kernel@vger.kernel.org
 CC: linux...@kvack.org
 Signed-off-by: Lai Jiangshan la...@cn.fujitsu.com

The patch looks OK but changelog doesn't say what problem this fixes,
how you found about it, and do we need this in stable.
--
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 2/2 V2] slub, hotplug: ignore unrelated node's hot-adding and hot-removing

2012-10-24 Thread Christoph Lameter
On Wed, 24 Oct 2012, Lai Jiangshan wrote:

> SLUB only fucus on the nodes which has normal memory, so ignore the other
> node's hot-adding and hot-removing.

As far as I can see the reasoning sounds fine and the patch looks clean.

Acked-by: Christoph Lameter 
--
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 2/2 V2] slub, hotplug: ignore unrelated node's hot-adding and hot-removing

2012-10-24 Thread Lai Jiangshan
SLUB only fucus on the nodes which has normal memory, so ignore the other
node's hot-adding and hot-removing.

Aka: if some memroy of a node(which has no onlined memory) is online,
but this new memory onlined is not normal memory(HIGH memory example),
we should not allocate kmem_cache_node for SLUB.

And if the last normal memory is offlined, but the node still has memroy,
we should remove kmem_cache_node for that node.(current code delay it when
all of the memory is offlined)

so we only do something when marg->status_change_nid_normal > 0.
marg->status_change_nid is not suitable here.

The same problem doesn't exsit in SLAB, because SLAB allocates kmem_list3
for every node even the node don't have normal memory, SLAB tolerates
kmem_list3 on alien nodes. SLUB only fucus on the nodes which has normal
memory, it don't tolerates alien kmem_cache_node, the patch makes
SLUB become self-compatible and avoid WARN and BUG in a rare condition.

CC: David Rientjes 
Cc: Minchan Kim 
CC: KOSAKI Motohiro 
CC: Yasuaki Ishimatsu 
CC: Rob Landley 
CC: Andrew Morton 
CC: Jiang Liu 
CC: Kay Sievers 
CC: Greg Kroah-Hartman 
CC: Mel Gorman 
CC: 'FNST-Wen Congyang' 
CC: linux-...@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: linux...@kvack.org
Signed-off-by: Lai Jiangshan 
---
 mm/slub.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/slub.c b/mm/slub.c
index a0d6984..487f0bd 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -3573,7 +3573,7 @@ static void slab_mem_offline_callback(void *arg)
struct memory_notify *marg = arg;
int offline_node;
 
-   offline_node = marg->status_change_nid;
+   offline_node = marg->status_change_nid_normal;
 
/*
 * If the node still has available memory. we need kmem_cache_node
@@ -3606,7 +3606,7 @@ static int slab_mem_going_online_callback(void *arg)
struct kmem_cache_node *n;
struct kmem_cache *s;
struct memory_notify *marg = arg;
-   int nid = marg->status_change_nid;
+   int nid = marg->status_change_nid_normal;
int ret = 0;
 
/*
-- 
1.7.4.4

--
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 2/2 V2] slub, hotplug: ignore unrelated node's hot-adding and hot-removing

2012-10-24 Thread Lai Jiangshan
SLUB only fucus on the nodes which has normal memory, so ignore the other
node's hot-adding and hot-removing.

Aka: if some memroy of a node(which has no onlined memory) is online,
but this new memory onlined is not normal memory(HIGH memory example),
we should not allocate kmem_cache_node for SLUB.

And if the last normal memory is offlined, but the node still has memroy,
we should remove kmem_cache_node for that node.(current code delay it when
all of the memory is offlined)

so we only do something when marg-status_change_nid_normal  0.
marg-status_change_nid is not suitable here.

The same problem doesn't exsit in SLAB, because SLAB allocates kmem_list3
for every node even the node don't have normal memory, SLAB tolerates
kmem_list3 on alien nodes. SLUB only fucus on the nodes which has normal
memory, it don't tolerates alien kmem_cache_node, the patch makes
SLUB become self-compatible and avoid WARN and BUG in a rare condition.

CC: David Rientjes rient...@google.com
Cc: Minchan Kim minchan@gmail.com
CC: KOSAKI Motohiro kosaki.motoh...@jp.fujitsu.com
CC: Yasuaki Ishimatsu isimatu.yasu...@jp.fujitsu.com
CC: Rob Landley r...@landley.net
CC: Andrew Morton a...@linux-foundation.org
CC: Jiang Liu jiang@huawei.com
CC: Kay Sievers kay.siev...@vrfy.org
CC: Greg Kroah-Hartman gre...@suse.de
CC: Mel Gorman mgor...@suse.de
CC: 'FNST-Wen Congyang' we...@cn.fujitsu.com
CC: linux-...@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: linux...@kvack.org
Signed-off-by: Lai Jiangshan la...@cn.fujitsu.com
---
 mm/slub.c |4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/mm/slub.c b/mm/slub.c
index a0d6984..487f0bd 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -3573,7 +3573,7 @@ static void slab_mem_offline_callback(void *arg)
struct memory_notify *marg = arg;
int offline_node;
 
-   offline_node = marg-status_change_nid;
+   offline_node = marg-status_change_nid_normal;
 
/*
 * If the node still has available memory. we need kmem_cache_node
@@ -3606,7 +3606,7 @@ static int slab_mem_going_online_callback(void *arg)
struct kmem_cache_node *n;
struct kmem_cache *s;
struct memory_notify *marg = arg;
-   int nid = marg-status_change_nid;
+   int nid = marg-status_change_nid_normal;
int ret = 0;
 
/*
-- 
1.7.4.4

--
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 2/2 V2] slub, hotplug: ignore unrelated node's hot-adding and hot-removing

2012-10-24 Thread Christoph Lameter
On Wed, 24 Oct 2012, Lai Jiangshan wrote:

 SLUB only fucus on the nodes which has normal memory, so ignore the other
 node's hot-adding and hot-removing.

As far as I can see the reasoning sounds fine and the patch looks clean.

Acked-by: Christoph Lameter c...@linux.com
--
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/