[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Block layer roadmap
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] Block layer roadmap |
Date: |
Thu, 28 Jul 2011 13:54:03 +0100 |
On Thu, Jul 28, 2011 at 1:35 PM, Kevin Wolf <address@hidden> wrote:
> Am 28.07.2011 14:09, schrieb Christoph Hellwig:
>> On Wed, Jul 27, 2011 at 01:37:31PM +0100, Stefan Hajnoczi wrote:
>>> Coroutines in the block layer [Kevin]
>>> * Programming model to simplify block drivers without blocking QEMU threads
>>
>> Can anyone explain what the whole point of this is? It really just is
>> a bit of syntactic sugar for the current async state machines. What does
>> it buy us over going for real threading?
>
> The only current block driver that really does everything in an async
> state machine is qed. It's definitely not nice code, and having to
> convert all of the other block drivers to this would be a lot of work.
Thanks Kevin :). I do agree with the clumsiness of async callback
programming - a lot of code is spent bundling and unbundling variables
to pass between functions, not to mention that the control flow is
much harder to follow.
> So if it only means that we're making things async that would block the
> VCPU until now, isn't that a great improvement already?
>
> The advantage compared to threading is that it allows an easy and
> incremental transition.
Also remember that we already have a threads-based implementation of
coroutines. Later on we can do fine-grained locking and switch to
threads directly instead of coroutines, if need be.
Stefan
Re: [Qemu-devel] Block layer roadmap, Stefan Hajnoczi, 2011/07/29