[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070824145233.GA26374@skynet.ie>
Date: Fri, 24 Aug 2007 15:52:34 +0100
From: mel@...net.ie (Mel Gorman)
To: Yasunori Goto <y-goto@...fujitsu.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Kamalesh Babulal <kamalesh@...ux.vnet.ibm.com>,
"Luck, Tony" <tony.luck@...el.com>, Jeremy Higdon <jeremy@....com>,
Andi Kleen <ak@...e.de>, linux-kernel@...r.kernel.org,
Balbir Singh <balbir@...ux.vnet.ibm.com>,
linux-ia64@...r.kernel.org, Christoph Lameter <clameter@....com>,
linux-mm@...ck.org
Subject: Re: [PATCH] Fix find_next_best_node (Re: [BUG] 2.6.23-rc3-mm1 Kernel panic - not syncing: DMA: Memory would be corrupted)
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 <y-goto@...fujitsu.com>
>
Acked-by: Mel Gorman <mel@....ul.ie>
> ---
> 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 from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists