Skip site navigation (1)Skip section navigation (2)
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>