[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] userspace block backend / gntdev problems


I'm running into trouble over and over again with my userspace block
backend daemon (blkbackd) developed as part of the xenner project.

First problem is the fixed limit of 128 slots.  The frontend submits up
to 32 requests, with up to 11 grants each.  With the shared ring this
sums up to 353 grants per block device.  When is blkbackd running in aio
mode, thus many requests are in flight at the same time and thus also
many grants mapped at the same time, the 128 limit is easily reached.  I
don't even need to stress the disk with bonnie or something, just
booting the virtual machine is enougth.  Any chance replace the
fix-sized array with a list to remove that hard-coded limit?  Or at
least raise the limit to -- say -- 1024 grants?

Second problem is that batched grant mappings (using
xc_gnttab_map_grant_refs) don't work reliable.  Symtoms I see are random
failures with ENOMEM for no obvious reason (128 grant limit is *far*
away).  Also host kernel crashes (kernel 2.6.21-2952.fc8xen).

When using xc_gnttab_map_grant_ref only (no batching) and limiting the
number requests in flight to 8 (so we stay below the 128 grant limit)
everything works nicely though.


Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.