Date: Mon, 26 Jan 2009 21:57:42 +0800 From: Sepherosa Ziehau <sepherosa@gmail.com> To: barney_cordoba@yahoo.com Cc: current@freebsd.org Subject: Re: DMA bounce buffers Message-ID: <ea7b9c170901260557p539221eena791b4cb2a73f1b5@mail.gmail.com> In-Reply-To: <497758.90319.qm@web63903.mail.re1.yahoo.com> References: <497758.90319.qm@web63903.mail.re1.yahoo.com>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Jan 26, 2009 at 9:05 PM, Barney Cordoba <barney_cordoba@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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?ea7b9c170901260557p539221eena791b4cb2a73f1b5>