At Tue, 5 Jun 2012 08:11:23 -0400, Christoph Hellwig wrote: > > On Tue, Jun 05, 2012 at 08:10:13PM +0800, Liu Yuan wrote: > > On 06/05/2012 07:52 PM, Christoph Hellwig wrote: > > > > > I completely agree with your opinion there - if you look at old list > > > archives you'll see that I argued against adding them to qemu but lost > > > the fight. There has been some recent discussion where people advocated > > > for moving away from it again, though. > > > > > > That is too bad. Anyway, dunno for now, if the coroutine is the only > > choice for block driver implementation of QEMU? If yes, probably we > > should go back to the QEMU version without it for the sake of code > > maintainability. > > It's not the only once. Going back to the old sheepdog driver > implementation using the aio methods should be entirely possible for a > new qemu, but I haven't look at this yet. The old sheepdog driver didn't do asynchronous I/Os; it did a busy loop when send/recv returns with EAGAIN. I moved to coroutine implementation because it could make the sheepdog driver asynchronous with a very little change. I'm not against going back to aio callback codes, but I'd rather see a block driver with a sheepdog client library so that we can more easily develop sheepdog client codes. Thanks, Kazutaka |