[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] dom0 boot failure: dma_reserve in reserve_bootmem_generic()



Hi,

I've been debugging an interesting dom0 boot failure which happens
only on certain machines when dom0_mem=830M. A scsi driver fails to 
allocate 512 bytes in GFP_DMA. However, the system boots with 500M or
930M.  The root cause:

reserve_bootmem_generic():
....
        if (phys+len <= MAX_DMA_PFN*PAGE_SIZE)
                dma_reserve += len / PAGE_SIZE;      <---


In case of 830M, phys+len is just enough to set dma_reserve where
the dma memory zone is then 'holed' out. With less dom0_mem, it
leaves few pages for GFP_DMA. With more, phys+len is larger than 
MAX_DMA_PFN*PAGE_SIZE and it skips setting dma_reserve so DMA cache is
good again.

So, anyone know the point of setting dma_reserve? Obviously, things 
are implied OK without it, so would it be safe to just remove the
if stmt completely?

thanks a lot,
Mukesh


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.