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

Re: [Xen-devel] libxl: locally attaching disk

On Tue, 2013-05-14 at 14:20 +0100, Thanos Makatos wrote:
> I want to implement booting from VHD images using pygrub for blktap3.
> I'm trying to use the existing code for qemu: in
> libxl__device_disk_local_initiate_attach I tell libxl to do exactly
> the same thing it does for the LIBXL_DISK_BACKEND_QDISK case in the
> switch statement (similar for
> libxl__device_disk_local_initiate_detach).
> I run into the following problem: blkfront goes directly from state 1
> to state 3, the back-end follows by jumping to state 4, and finally
> the front-end goes to state 4 and everything works fine (this is what
> is done for domU guests using blktap3 without pygrub). However, it
> seems that libxl expects the backend to step through each state
> (specifically it times out waiting for the back-end to go to state 2
> but the back-end has already gone to state 4). If I correctly
> understand the protocol specification in
> xen/include/public/io/blkif.h, libxl shouldn't be doing that.

Indeed, not just because the backend might skip a state but because even
if it did go through state 2 it might have gone to state 4 by the time
libxl processes the watch and reads the state.

Roger, do you have any ideas how to fix this? Usually xenstore
interactions wait for state >= N not just == N to handle this case.


Xen-devel mailing list



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