Thread (5 messages) 5 messages, 3 authors, 2009-08-18

RE: [PATCH] mv clear node_load[] to __build_all_zonelists()

From: Bo Liu <hidden>
Date: 2009-08-18 09:28:04

 
On Tue, 18 Aug 2009 09:12:03 +0900
KAMEZAWA Hiroyuki wrote:
On Mon, 17 Aug 2009 14:34:47 -0700
Andrew Morton wrote:
quoted
On Thu, 6 Aug 2009 19:50:37 +0900
KAMEZAWA Hiroyuki wrote:
quoted
On Thu, 6 Aug 2009 18:44:40 +0800
Bo Liu wrote:
quoted
If node_load[] is cleared everytime build_zonelists() is called,node_load[]
will have no help to find the next node that should appear in the given node's
fallback list.
Signed-off-by: Bob Liu
nice catch. (my old bug...sorry

Reviewed-by: KAMEZAWA Hiroyuki 

BTW, do you have special reasons to hide your mail address in commit log ?

I added proper CC: list.
Hmm, I think it's necessary to do total review/rewrite this function again..

quoted
---
mm/page_alloc.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index d052abb..72f7345 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2544,7 +2544,6 @@ static void build_zonelists(pg_data_t *pgdat)
prev_node = local_node;
nodes_clear(used_mask);

- memset(node_load, 0, sizeof(node_load));
memset(node_order, 0, sizeof(node_order));
j = 0;
@@ -2653,6 +2652,7 @@ static int __build_all_zonelists(void *dummy)
{
int nid;

+ memset(node_load, 0, sizeof(node_load));
for_each_online_node(nid) {
pg_data_t *pgdat = NODE_DATA(nid);
What are the consequences of this bug?

Is the fix needed in 2.6.31? Earlier?
I think this should be on fast-track as bugfix.

By this bug, zonelist's node_order is not calculated as expected.
This bug affects on big machine, which has asynmetric node distance.

[synmetric NUMA's node distance]
0 1 2
0 10 12 12
1 12 10 12
2 12 12 10

[asynmetric NUMA's node distance]
0 1 2
0 10 12 20
1 12 10 14
2 20 14 10
 
Thanks for your explanations.
Actually,
When I submited this patch I didn't think so clearly about the consequences.
I just knew the node_load[] will be nouse because of the memset() clear it every time.
This (my bug) is very old..but no one have reported this for a long time.
Maybe because the number of asynmetric NUMA is very small and they use cpuset
for customizing node memory allocation fallback.
 
 
 
_________________________________________________________________
With Windows Live, you can organize, edit, and share your photos.
http://www.microsoft.com/middleeast/windows/windowslive/products/photo-gallery-edit.aspx

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help