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