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