Subject: Re: puvnd (pass to userland vnd)?
To: None <tech-kern@NetBSD.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-kern
Date: 03/13/2007 12:58:39
>> Beware of another limitation: the block layer is basically
>> asynchronous, so your userspace process needs to deal with many
>> parallel requests.

Not necessarily.  When I built pdisk, the design worked that way, but
the implementation single-threaded everything: only one request at a
time would be outstanding from the kernel to userland.

It impairs performance, of course, but not correctness.

> Hm, that's bad.  Maybe I'll simply add DMG support directly in the
> kernel and revisit pub when we have AIO.

Not all uses of pdisk/pub/whatever will necessarily be backed by a
simple file and therefore need aio to be useful.  Even if it *is*
backed by a single file, missing aio just means lower performance, not
missing functionality.

As a simple example, I could easily imagine a distributed network
pseudo-disk that's split across multiple remote machines, with the
userland process pdisk talks to doing nothing but farming out requests
and doing share merging.  No aio needed.

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B