At Tue, 15 Jun 2010 10:24:14 +0200, Kevin Wolf wrote: > > Am 14.06.2010 21:48, schrieb MORITA Kazutaka: > >> 3) qemu-io aio_read/write doesn't seem to work well with it. I only get > >> the result of the AIO request when I exit qemu-io. This may be a qemu-io > >> problem or a Sheepdog one. We need to look into this, qemu-io is > >> important for testing and debugging (particularly for qemu-iotests) > >> > > Sheepdog receives responses from the server in the fd handler to the > > socket connection. But, while qemu-io executes aio_read/aio_write, it > > doesn't call qemu_aio_wait() and the fd handler isn't invoked at all. > > This seems to be the reason of the problem. > > > > I'm not sure this is a qemu-io problem or a Sheepdog one. If it is a > > qemu-io problem, we need to call qemu_aio_wait() somewhere in the > > command_loop(), I guess. If it is a Sheepdog problem, we need to > > consider another mechanism to receive responses... > > Not sure either. > > I think posix-aio-compat needs fd handlers to be called, too, and it > kind of works. I'm saying "kind of" because after an aio_read/write > command qemu-io exits (it doesn't with Sheepdog). And when exiting there > is a qemu_aio_wait(), so this explains why you get a result there. > > I guess it's a bug in the posix-aio-compat case rather than with Sheepdog. > It seems that fgets() is interrupted by a signal in fetchline() and qemu-io exits. BTW, I think we should call the fd handlers when user input is idle and the fds become ready. I'll send the patch later. > The good news is that if qemu-iotests works with only one aio_read/write > command before qemu-io exits, it's going to work with Sheepdog, too. > Great! Thanks, Kazutaka -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html