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