Andrew Gallatin wrote:
Garrett D'Amore wrote:

Without bcopy, you might have to allocate more IOMMU entries. Its a bigger problem on the rx path when you do loanup and buffer recycling (using esballoc), but even on the tx side, if you have a packet that is

Drivers only resort to loanup *BECAUSE THE SOLARIS MECHANISM TO GET
A DMA ADDRESS SUCKS SO BADLY*.  I apologize for shouting, but
I simply cannot emphasize this enough! I'd love to make my
Solaris driver like my drivers for *EVERY OTHER *NIX I SUPPORT*
and eliminate loanup, and allocate rx buffers on the fly.  Loanup
sucks.  But I cannot, because the DDI framework is so expensive.

Sun knew this more than a decade ago, which is why pretty much all sparc network drivers used dvma_kaddr_load() instead. There's never been any will to do anything about it though; that fact that ddi_dma_addr_bind_handle() had to *allocate* TTEs as well as fill them in always struck me as wrong.

  Paul

--
===================================
Paul Durrant
http://www.linkedin.com/in/pdurrant
===================================
_______________________________________________
driver-discuss mailing list
driver-discuss@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/driver-discuss

Reply via email to