Unmapped I/O

Konstantin Belousov kostikbel at gmail.com
Thu Dec 20 20:15:29 UTC 2012


On Thu, Dec 20, 2012 at 11:49:18AM +0100, Ivan Voras wrote:
> On 19/12/2012 14:54, Konstantin Belousov wrote:
> 
> > Besides not mapped buffers, not mapped BIOs are introduced, marked
> > with the flag BIO_NOTMAPPED.  Unmapped buffers are directly translated
> > to unmapped BIOs.  Geom providers may indicate an acceptance of the
> > unmapped BIOs.  If provider does not handle unmapped i/o requests,
> > geom now automatically establishes transient mapping for the i/o
> > pages.
> 
> Hi,
> 
> Can you write up more details on what this means for GEOM developers:
> what is to be gained / lost (on GEOM level) for existing GEOM classes,
> and how to "indicate acceptance" for umapped BIOs?

Nothing is changed for existing GEOM classes, and it does not mean anything
for GEOM developers, unless she wants to change the GEOM class to handle
unmapped BIOs.

Did you looked at the patch ? Look at the changes for struct bio and
geom_vfs.c.

Geoms which accept unmapped BIOs now could get either mapped bio, not
different from the current one, or unmapped bio, where the bio_data is
invalid, and array of the vm_pages bio_ma is passed with bio_ma_offset
offset specifying the start position of the data in the first page
of the array.

Unless provider explicitely agreed to accept unmapped BIOs, it would never
get them.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 196 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/freebsd-arch/attachments/20121220/8442415c/attachment.sig>


More information about the freebsd-arch mailing list