Re: [PATCH] Fix find_next_best_node (Re: [BUG] 2.6.23-rc3-mm1 Kernel panic - not syncing: DMA: Memory would be corrupted)
From: Mel Gorman <hidden>
Date: 2007-08-24 14:52:49
Also in:
lkml
On (24/08/07 15:53), Yasunori Goto didst pronounce:
I found find_next_best_node() was wrong. I confirmed boot up by the following patch. Mel-san, Kamalesh-san, could you try this?
This boots the IA-64 successful and gets rid of that DMA corrupts memory message. As a bonus, it fixes up the memoryless nodes (the bug where Total pages == 0 and there is a BUG in page_alloc.c) by building zonelists properly. The machine still fails to boot with the more familiar net/core/skbuff.c:95 but that is a separate problem. Well spotted Yasunori-san. Andrew, this fixes a real problem and should be considered a fix to memoryless-nodes-fixup-uses-of-node_online_map-in-generic-code.patch unless Christoph Lameter objects.
Bye. --- Fix decision of memoryless node in find_next_best_node(). This can be cause of SW-IOMMU's allocation failure. This patch is for 2.6.23-rc3-mm1. Signed-off-by: Yasunori Goto <redacted>
Acked-by: Mel Gorman <redacted>
quoted hunk ↗ jump to hunk
--- mm/page_alloc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) Index: current/mm/page_alloc.c ===================================================================--- current.orig/mm/page_alloc.c 2007-08-24 16:03:17.000000000 +0900 +++ current/mm/page_alloc.c 2007-08-24 16:04:06.000000000 +0900@@ -2136,7 +2136,7 @@ static int find_next_best_node(int node, * Note: N_HIGH_MEMORY state not guaranteed to be * populated yet. */ - if (pgdat->node_present_pages) + if (!pgdat->node_present_pages) continue; /* Don't want a node to appear more than once */
-- Mel Gorman Part-time Phd Student Linux Technology Center University of Limerick IBM Dublin Software Lab -- 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>