[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-2.11 1/4] Revert "coroutine: abort if we try
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-devel] [PATCH for-2.11 1/4] Revert "coroutine: abort if we try to schedule or enter a pending coroutine" |
Date: |
Tue, 28 Nov 2017 17:18:05 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0 |
On 28/11/2017 16:43, Kevin Wolf wrote:
> This reverts commit 6133b39f3c36623425a6ede9e89d93175fde15cd.
>
> The commit checked conditions that would expose a bug, but there is no
> real reason to forbid them apart from the bug, which we'll fix in a
> minute.
>
> In particular, reentering a coroutine during co_aio_sleep_ns() is fine;
> the function is explicitly written to allow this.
This is true.
> aio_co_schedule() can indeed conflict with direct coroutine invocations,
> but this is exactky what we want to fix, so remove that check again,
> too.
I'm not sure this is a good idea, as I answered in patch 3.
It can also conflict badly with another aio_co_schedule(). Your patch
here removes the assertion in this case, and patch 3 makes it easier to
get into the situation where two aio_co_schedule()s conflict with each
other.
For example, say you have a coroutine that calls aio_co_schedule on
itself, like
while (true) {
aio_co_schedule(qemu_get_current_aio_context(),
qemu_coroutine_self());
}
If somebody else calls qemu_coroutine_enter on this coroutine, *that* is
the bug. These patches would just cause some random corruption or
(perhaps worse) hang.
Paolo
- [Qemu-devel] [PATCH for-2.11 0/4] Fix qemu-iotests failures, Kevin Wolf, 2017/11/28
- [Qemu-devel] [PATCH for-2.11 1/4] Revert "coroutine: abort if we try to schedule or enter a pending coroutine", Kevin Wolf, 2017/11/28
- Re: [Qemu-devel] [PATCH for-2.11 1/4] Revert "coroutine: abort if we try to schedule or enter a pending coroutine", Jeff Cody, 2017/11/28
- Re: [Qemu-devel] [PATCH for-2.11 1/4] Revert "coroutine: abort if we try to schedule or enter a pending coroutine",
Paolo Bonzini <=
- Re: [Qemu-devel] [PATCH for-2.11 1/4] Revert "coroutine: abort if we try to schedule or enter a pending coroutine", Kevin Wolf, 2017/11/28
- Re: [Qemu-devel] [PATCH for-2.11 1/4] Revert "coroutine: abort if we try to schedule or enter a pending coroutine", Paolo Bonzini, 2017/11/28
- Re: [Qemu-devel] [PATCH for-2.11 1/4] Revert "coroutine: abort if we try to schedule or enter a pending coroutine", Kevin Wolf, 2017/11/28
- Re: [Qemu-devel] [PATCH for-2.11 1/4] Revert "coroutine: abort if we try to schedule or enter a pending coroutine", Jeff Cody, 2017/11/28
- Re: [Qemu-devel] [PATCH for-2.11 1/4] Revert "coroutine: abort if we try to schedule or enter a pending coroutine", Paolo Bonzini, 2017/11/28
[Qemu-devel] [PATCH for-2.11 3/4] coroutine: Cancel aio_co_schedule() on direct entry, Kevin Wolf, 2017/11/28