qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC] block: Removed coroutine ownership assumption


From: Stefan Hajnoczi
Subject: Re: [Qemu-devel] [RFC] block: Removed coroutine ownership assumption
Date: Fri, 22 Jun 2012 09:33:56 +0100

On Fri, Jun 22, 2012 at 9:16 AM, Peter Maydell <address@hidden> wrote:
> On 22 June 2012 09:00, Peter Crosthwaite
> <address@hidden> wrote:
>> On Fri, Jun 22, 2012 at 5:50 PM, Jan Kiszka <address@hidden> wrote:
>>> Not sure if I understood the intention yet: Is this supposed to fix an
>>> issue with the current usage of coroutines or to extend their usage
>>> beyond that? In the latter case, please don't do this. We'd rather like
>>> to get rid of them long term.
>
>> My extended usage, which is under development and not ready for the
>> list. But are you saying qemu-coroutine is deprecated? If so Ill just
>> re-impelement my work with threads, mutexes and condition vars, but
>> coroutines are the most natural way of doing it.
>
> Basically coroutines are nastily unportable and we've had a set
> of problems with them (as witness the fact that we have three
> separate backend implementations!). There is supposedly some sort
> of migration plan for getting them out of the block layer eventually;
> they're a kind of halfway house for avoiding synchronous I/O there
> AIUI. I would much prefer not to see any further use of them in new
> code. Fundamentally C doesn't support coroutines and it's much better
> to just admit that IMHO and use more idiomatic design approaches
> instead.

If you avoid coroutines and write asynchronous code it will be
*harder* to convert to threads!  IMO it's better to make use of
coroutines for now and convert to threads as soon as the global mutex
has been pushed out into device emulation.

Yes, they require retargeting to different host platforms, but we have that now.

Stefan



reply via email to

[Prev in Thread] Current Thread [Next in Thread]