On Monday, 20 March 2000 at 20:17:13 +0100, Poul-Henning Kamp wrote:
> In message <[EMAIL PROTECTED]>, Matthew Dillon writes:
>
>> Well, let me tell you what the fuzzy goal is first and then maybe we
>> can work backwards.
>>
>> Eventually all physical I/O needs a physical address. The quickest
>> way to get to a physical address is to be given an array of vm_page_t's
>> (which can be trivially translated to physical addresses).
>
> Not all: PIO access to ATA needs virtual access. RAID5 needs
> virtual access to calculate parity.
I'm not sure what you mean by "virtual access". If you mean
file-related rather than partition-related, no: like the rest of
Vinum, RAID-5 uses only partition-related offsets.
>> What we want to do is to try to extend VMIO (aka the vm_page_t) all
>> the way through the I/O system - both VFS and DEV I/O, in order to
>> remove all the nasty back and forth translations.
>
> I agree, but some drivers need mapping we need to cater for those.
> They could simply call a vm_something(struct buf *) call which would
> map the pages and things would "just work".
>
> For RAID5 we have the opposite problem also: data is created which
> has only a mapped existance and the b_pages[] array is not
> populated.
Hmm. I really need to check that I'm not missing something here.
Greg
--
Finger [EMAIL PROTECTED] for PGP public key
See complete headers for address and phone numbers
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message