[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <86802c440803140944p302b300fy7515fb758221932b@mail.gmail.com>
Date: Fri, 14 Mar 2008 09:44:50 -0700
From: "Yinghai Lu" <yhlu.kernel@...il.com>
To: "Andi Kleen" <andi@...stfloor.org>
Cc: "Andi Kleen" <ak@...e.de>,
"Andrew Morton" <akpm@...ux-foundation.org>, mingo@...e.hu,
clameter@....com, linux-kernel@...r.kernel.org,
"Yasunori Goto" <y-goto@...fujitsu.com>,
"KAMEZAWA Hiroyuki" <kamezawa.hiroyu@...fujitsu.com>
Subject: Re: [PATCH] mm: fix boundary checking in free_bootmem_core
On 14 Mar 2008 12:58:44 +0100, Andi Kleen <andi@...stfloor.org> wrote:
> "Yinghai Lu" <yhlu.kernel@...il.com> writes:
> >
> > then i tried to reserve 64M or 128M RAM before that, and free that
> > before gart/switotble try to allloc_bootmem under 4g.
>
> Sounds like an incredible hack. There are far better ways to do that
> for bootmem allocations. e.g. you can just specify a high enough "goal"
> That is how swiotlb solves a similar problem (at least before my
> mask allocator rewrite)
I don't think so.
anyway, otherway to workaround it is
change
return __earlyonly_bootmem_alloc(node, size, size,
__pa(MAX_DMA_ADDRESS));
in vmemmap_alloc_block to
return __earlyonly_bootmem_alloc(node, size, size,
__pa(MAX_DMA_ADDRESS + (1<<27)));
to make room for gart. but that is global change. and may affect other
platform. and don't make sure gart will get it.
also i assume swiotlb need that range is less than 4g.
>
>
> > > with your improved free_bootmem()
> >
> > using phys_to_nid()? it seems we only have that on x86_64.
>
> pfn/page_to_nid() is generic afaik.
still in bootmem stage? page->flags is ready at that time?
YH
--
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