Date: Wed, 11 Jun 2008 07:30:51 -0600 From: Scott Long <scottl@samsco.org> To: "Kenneth D. Merry" <ken@kdm.org> Cc: "Pan, Weimin" <weimin.pan@hp.com>, "freebsd-scsi@freebsd.org" <freebsd-scsi@freebsd.org> Subject: Re: 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: <484FD38B.3050906@samsco.org> In-Reply-To: <20080609201723.GA95850@nargothrond.kdm.org> References: <6B24EEDBA38D764293B27C04FE414CC64E40604C07@G1W0491.americas.hpqcorp.net> <20080609201723.GA95850@nargothrond.kdm.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Kenneth D. Merry wrote: > On Mon, Jun 09, 2008 at 18:18:16 +0000, Pan, Weimin wrote: >> SCSI upper layer can pass a scatterlist to middle layer and LLD. Normally the page_link, length, and offset is set in the scatterlist. LLD will convert 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 transfer. 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 situation. > > In theory, you can pass a physical address in a CAM CCB if you set the > CAM_DATA_PHYS flag on the CCB. > > It looks like quite a few drivers in the tree support that flag, or at > least look at it. > > So take a look at whichever driver you're using, and see if it looks at > that flag in the CCB. > > Ken Most drivers will honor CAM_DATA_PHYS by itself, but don't honor it in conjunction with CAM_SCATTER_VALID. CAM_SG_LIST_PHYS is only supported by the AHC and AHD drivers (and it's not clear to me what the difference is between the two sets of flags). That said, modifying drivers to support physical S/G lists isn't all that hard, and it's something that will happen more and more with the planned changes to moving physio to unmapped physical addresses. Scott
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?484FD38B.3050906>