Re: DMA bounce buffers

From: Sepherosa Ziehau <sepherosa_at_gmail.com>
Date: Mon, 26 Jan 2009 21:57:42 +0800
On Mon, Jan 26, 2009 at 9:05 PM, Barney Cordoba
<barney_cordoba_at_yahoo.com> wrote:
> I have a problem with the ixgbe driver, where bus_dmamap_load_mbuf_sg() is
> failing. The underlying failure is reserve_bounce_pages(). It seems that
> there aren't any bounce pages allocated. What could be the cause of this? Is there some tunable?

I don't think the hardware supported ixgbe(4) will need bounce pages
on RX/TX buffers (according to data sheet, the hardware supports full
64bits address space accessing and no alignment constraints on RX/TX
buffer start address).  However, the driver's buffer busdma is kinda
misconfigured: in ixgbe_allocate_{transmit,receive}_buffers(), the
buffers' alignment is set to PAGE_SIZE (?!), this means that almost
all TX/RX operation will require bouncing.  The best case is poor
performance due to additional and unnecessary memory copy in
bus_dmamap_sync(); the worst case is completely unfunction NIC due to
RX ring could not be filled during ifnet.if_init().

Best Regards,
sephe

-- 
Live Free or Die
Received on Mon Jan 26 2009 - 13:21:59 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:41 UTC