Date: Thu, 20 Dec 2012 01:47:33 +0800 From: Julian Elischer <julian@freebsd.org> To: Konstantin Belousov <kostikbel@gmail.com> Cc: Poul-Henning Kamp <phk@phk.freebsd.dk>, mjacob@freebsd.org, freebsd-arch@freebsd.org Subject: Re: Unmapped I/O Message-ID: <50D1FDB5.70804@freebsd.org> In-Reply-To: <20121219172320.GW71906@kib.kiev.ua> References: <20121219135451.GU71906@kib.kiev.ua> <50D1D2BD.80107@freebsd.org> <50D1ECC5.2070209@freebsd.org> <17252.1355935960@critter.freebsd.dk> <20121219172320.GW71906@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
On 12/20/12 1:23 AM, Konstantin Belousov wrote: > On Wed, Dec 19, 2012 at 04:52:40PM +0000, Poul-Henning Kamp wrote: >> -------- >> In message <50D1ECC5.2070209@freebsd.org>, Julian Elischer writes: >> >>> yeah.. Bill Jolitz had patches for this in 92 ... that disappeared >>> with him. >> You know, I've never seen a shred of evidence supporting that claim >> or any of the many similarly improbable claims Bill Jolitz made, and >> in this particular case I very much did look for such evidence. > This is definitely not a discussion I hoped for. > > Still, the i386 cannot have much benefit from the unmapped buffers, > just because thre is no facilities similar to the direct map for amd64. > i386 must use transient mapping even for unmapped buffers to copy > the data to the usermode. > > Also, as I understand the history, VMIO buffers, or unified page/buffer > cache, only appeared in the FreeBSD. If you look at the old physio code then you will see that the driver can DMA directly to user space, even in BSD4.3 and earlier. The system however insisted on mapping it to kernel addresses in case the device needed to be spoon fed. Even if it didn't need to. The case of buffered IO is of course different. Bill did explain his changes to me once when I visited him at his home in Oakland, and showed me code. I do not remember the details but the impression I retain is that there was some sort of "just-in-time" mapping that was used "if required" and that buffer caches were entirely non mapped most of the time, being maintained and managed in physical memory.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?50D1FDB5.70804>