Date: Mon, 28 Feb 2005 18:43:30 +1100 From: Peter Jeremy <PeterJeremy@optushome.com.au> To: freebsd-current@freebsd.org Subject: Re: bus_dmamem_alloc() can't handle large NOWAIT requests Message-ID: <20050228074329.GE28983@cirb503493.alcatel.com.au> In-Reply-To: <20050109011132.GJ39552@cirb503493.alcatel.com.au> References: <20050109011132.GJ39552@cirb503493.alcatel.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Sun, 2005-Jan-09 12:11:32 +1100, Peter Jeremy wrote: >According to bus_dma(9), bus_dmamem_alloc() can be invoked with a >flag BUS_DMA_NOWAIT to indicate that sleep()ing is not allowed. > >At least on the i386, if the requested size exceeds 1 page (or some >other cases), the requested memory will be allocated via contigmalloc(). > >bus_dmamem_alloc() maps BUS_DMA_NOWAIT to M_NOWAIT but contigmalloc() >does not support M_NOWAIT and will tsleep() under some conditions. Since I couldn't find any reference to this problem in gnats, I've raised kern/78179 so it doesn't get lost. -- Peter Jeremy
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20050228074329.GE28983>