From owner-freebsd-arch@FreeBSD.ORG Wed Dec 19 18:47:25 2012 Return-Path: Delivered-To: freebsd-arch@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 1B2A6E68; Wed, 19 Dec 2012 18:47:25 +0000 (UTC) (envelope-from phk@phk.freebsd.dk) Received: from phk.freebsd.dk (phk.freebsd.dk [130.225.244.222]) by mx1.freebsd.org (Postfix) with ESMTP id C5F2F8FC0C; Wed, 19 Dec 2012 18:47:24 +0000 (UTC) Received: from critter.freebsd.dk (critter.freebsd.dk [192.168.61.3]) by phk.freebsd.dk (Postfix) with ESMTP id 8E5DF89EAF; Wed, 19 Dec 2012 18:47:23 +0000 (UTC) Received: from critter.freebsd.dk (localhost [127.0.0.1]) by critter.freebsd.dk (8.14.5/8.14.5) with ESMTP id qBJIlNId017564; Wed, 19 Dec 2012 18:47:23 GMT (envelope-from phk@phk.freebsd.dk) To: Konstantin Belousov Subject: Re: Unmapped I/O In-reply-to: <20121219183600.GX71906@kib.kiev.ua> From: "Poul-Henning Kamp" References: <20121219135451.GU71906@kib.kiev.ua> <50D1D2BD.80107@freebsd.org> <50D1ECC5.2070209@freebsd.org> <17252.1355935960@critter.freebsd.dk> <20121219172320.GW71906@kib.kiev.ua> <17479.1355941463@critter.freebsd.dk> <20121219183600.GX71906@kib.kiev.ua> Date: Wed, 19 Dec 2012 18:47:23 +0000 Message-ID: <17563.1355942843@critter.freebsd.dk> Cc: mjacob@freebsd.org, freebsd-arch@freebsd.org X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 19 Dec 2012 18:47:25 -0000 -------- In message <20121219183600.GX71906@kib.kiev.ua>, Konstantin Belousov writes: >> Wrong, a Adaptec 1542 could DMA directly into or out of any spot >> of memory and that could have been mapped in userland but not in >> kernel. > >And how this can be used while keeping on-disk data coherent with the >buffer ?[...] You simply don't care about the kernel buffer (most of the time). The kernel doesn't need to see the data, all it has to do is move it from disk to userland. Of course there are boundary issues and cornercases that need to be handled, for instance if userland does not issue requests which are disk-sector-integral, in which case the buffers will be needed, but for the common case, they will not be necessary. -- Poul-Henning Kamp | UNIX since Zilog Zeus 3.20 phk@FreeBSD.ORG | TCP/IP since RFC 956 FreeBSD committer | BSD since 4.3-tahoe Never attribute to malice what can adequately be explained by incompetence.