From owner-freebsd-scsi@FreeBSD.ORG Mon Jun 9 18:34:26 2008 Return-Path: Delivered-To: freebsd-scsi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 78FAC1065671 for ; Mon, 9 Jun 2008 18:34:26 +0000 (UTC) (envelope-from weimin.pan@hp.com) Received: from g5t0008.atlanta.hp.com (g5t0008.atlanta.hp.com [15.192.0.45]) by mx1.freebsd.org (Postfix) with ESMTP id 4EAB08FC1A for ; Mon, 9 Jun 2008 18:34:26 +0000 (UTC) (envelope-from weimin.pan@hp.com) Received: from G1W0401.americas.hpqcorp.net (g1w0401.americas.hpqcorp.net [16.236.31.6]) (using TLSv1 with cipher RC4-MD5 (128/128 bits)) (No client certificate requested) by g5t0008.atlanta.hp.com (Postfix) with ESMTP id DA8B024A48 for ; Mon, 9 Jun 2008 18:18:28 +0000 (UTC) Received: from G1W0397.americas.hpqcorp.net (16.236.31.21) by G1W0401.americas.hpqcorp.net (16.236.31.6) with Microsoft SMTP Server (TLS) id 8.1.263.0; Mon, 9 Jun 2008 18:18:16 +0000 Received: from G1W0491.americas.hpqcorp.net ([16.236.84.125]) by G1W0397.americas.hpqcorp.net ([16.236.31.21]) with mapi; Mon, 9 Jun 2008 18:18:16 +0000 From: "Pan, Weimin" To: "freebsd-scsi@freebsd.org" Date: Mon, 9 Jun 2008 18:18:16 +0000 Thread-Topic: How to directly pass a dma physical address and length from SCSI upper layer to LLD without mapping the dma memory to kernel pages Thread-Index: AcjKXTAITt/dfm2bQ8aDKjYW2aDIBQ== Message-ID: <6B24EEDBA38D764293B27C04FE414CC64E40604C07@G1W0491.americas.hpqcorp.net> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Cc: "Pan, Weimin" 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 X-BeenThere: freebsd-scsi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SCSI subsystem List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 09 Jun 2008 18:34:26 -0000 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.