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

Reply via email to