Date: Mon, 9 Jun 2008 18:18:16 +0000 From: "Pan, Weimin" <weimin.pan@hp.com> To: "freebsd-scsi@freebsd.org" <freebsd-scsi@freebsd.org> Cc: "Pan, Weimin" <weimin.pan@hp.com> Subject: How to directly pass a dma physical address and length from SCSI upper layer to LLD without mapping the dma memory to kernel pages Message-ID: <6B24EEDBA38D764293B27C04FE414CC64E40604C07@G1W0491.americas.hpqcorp.net>
next in thread | raw e-mail | index | archive | help
SCSI upper layer can pass a scatterlist to middle layer and LLD. Normally t= he page_link, length, and offset is set in the scatterlist. LLD will conver= t to dma_address from pages by itself. That means the dma physical address = has to map to kernel memory space before it can be passed to LLD for data t= ransfer. If I have a large dma memroy and it doesn't need to be touched by = kernel or user mode Apps, it is a performance penalty to force to do that. Is there a way to directly pass a dma physical address from upper layer to = LLD (like use dma_address in a scatterlist)? I looked at a couple of LLD drivers and none of them handle this kind of si= tuation.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6B24EEDBA38D764293B27C04FE414CC64E40604C07>