Jivin Markus Franke lays it down ...
> Hi David,
> 
> Zitat von David McCullough <[EMAIL PROTECTED]>:
> 
> >My understanding of the zones says is that you can do what you are trying
> >to do.  I seem to recall that if you get low on normal memory the system
> >may dip into the DMA pool.
> 
> well, I reserved a 16 MByte DMA zone and declared it as non-cacheable.  
> The Linux kernel is compiled for being located at address 0x01000000,  
> which is the first address after the DMA zone. However, when I boot my  
> system now the first attempt to allocate some memory from the DMA zone  
> results in the following:
> 
> ---snip---
> swapper: page allocation failure. order:0, mode:0x4001
> Stack from 0124edbc:
>  bla bla bla
> Call Trace:
>  bla bla bla
> 
> Mem-info:
> DMA per-cpu:
> CPU    0: Hot: hi:    0, btch:   1 usd:   0   Cold: hi:    0, btch:    
> 1 usd:   0
> Normal per-cpu:
> CPU    0: Hot: hi:    6, btch:   1 usd:   0   Cold: hi:    2, btch:    
> 1 usd:   0
> Active:0 inactive:0 dirty:0 writeback:0 unstable:0 free:11304 slab:401  
> mapped:0 pagetables:0
> DMA free:0kB min:252kB low:312kB high:376kB active:0kB inactive:0kB  
> present:16256kB pages_scanned:0 all_unreclaimable? no
> lowmem_reserve[]: 0 47
> Normal free:45216kB min:760kB low:948kB high:1140kB active:0kB  
> inactive:0kB present:48768kB pages_scanned:0 all_unreclaimable? no
> lowmem_reserve[]: 0 0
> DMA: 0*4kB 0*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 0*1024kB  
> 0*2048kB 0*4096kB = 0kB
> Normal: 0*4kB 0*8kB 0*16kB 1*32kB 0*64kB 1*128kB 0*256kB 0*512kB  
> 0*1024kB 0*2048kB 11*4096kB = 45216kB
> 16384 pages of RAM
> 11305 free pages
> 4661 reserved pages
> 0 pages shared
> 0 pages swap cached
> ---snap---
> 
> From the messages above I can see that there are no free pages in the  
> DMA zone anymore, although it's the first memory request to this zone.
> 
> Am I missing something fundamentally?

bootmem perhaps ?  I can't recall exactly but I think you have added a zone
without adding or freeing  the pages appropriately.

If I am reading what you have done correctly,  you now have two areas of
RAM,  a 16MB DMA area and a 16MB?? area for normal use.

You have to remember that on a PC,  the DMA memory is still normal
memory,  it is just marked as preferred for DMA.

Have a look at some other arch setups that use a DMA memory zone and see
if you can spot it,

Cheers,
Davidm

-- 
David McCullough,  [EMAIL PROTECTED],   Ph:+61 734352815
Secure Computing - SnapGear  http://www.uCdot.org http://www.cyberguard.com
_______________________________________________
uClinux-dev mailing list
[email protected]
http://mailman.uclinux.org/mailman/listinfo/uclinux-dev
This message was resent by [email protected]
To unsubscribe see:
http://mailman.uclinux.org/mailman/options/uclinux-dev

Reply via email to