[Top] [All Lists]

Re: Any examples / docs for getting SPARSEMEM to work?

To: Chad Reese <>
Subject: Re: Any examples / docs for getting SPARSEMEM to work?
From: Matt Porter <>
Date: Thu, 18 May 2006 13:23:35 -0700
In-reply-to: <>; from on Thu, May 18, 2006 at 10:58:48AM -0700
Original-recipient: rfc822;
References: <>
User-agent: Mutt/1.2.5i
On Thu, May 18, 2006 at 10:58:48AM -0700, Chad Reese wrote:
> Hello All,
> I've spent the last few days trying to get SPARSEMEM to work on a 64bit Mips 
> kernel. The processor I'm using has large wholes in its memory map.
> Memory layout:
> 0 - 0x10000000                        First 256MB
> 0x410000000 - 0x420000000     Second 256MB
> 0x20000000 - ?                        The rest of memory
> Up until now I've used the flat memory model and not mapped the 2nd 256MB. 
> This 
> is rather wasteful for boards with 512MB of memory. SPARSEMEM look like what 
> I 
Yep, SPARSEMEM is what you want. BTW, doublecheck your line wrap
settings on your mailer...they're messed up.

> need, but I've been unable to get it working. My attempts to configure it 
> always
> end with sparse_index_alloc calling alloc_bootmem_node which fails to 
> allocate 
> 4KB. In prom_init I've added memory using add_memory_region.

But where have you added everything else? Where are you registering the
sparsemem and initializing it? It sounds like you are either getting
an invalid node passed into the alloc_bootmem_node or you are calling
the bootmem allocator much later and it is failing. 

> Are there any reasonably easy to follow implementations of sparsemem? I 
> figure 
None that I know of, excpet for the i386, ia64, and powerpc
implementations. i386 is fairly straightforward except for all
the EFI magic.

> I'm missing something very basic, but perusal of Mips and the other 
> architectures haven't helped much.
> My baseline is linux-mips 2.6.14.
> Any help would be appreciated,

I suggest working back from your bootmem allocation failure to
understand why that is failing.


<Prev in Thread] Current Thread [Next in Thread>