[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH 3/5] coroutines: abort if we try to enter a stil
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-block] [PATCH 3/5] coroutines: abort if we try to enter a still-sleeping coroutine |
Date: |
Tue, 21 Nov 2017 10:17:34 +0000 |
User-agent: |
Mutt/1.9.1 (2017-09-22) |
On Mon, Nov 20, 2017 at 08:45:21AM -0500, Jeff Cody wrote:
> On Mon, Nov 20, 2017 at 11:43:34AM +0000, Stefan Hajnoczi wrote:
> > On Sun, Nov 19, 2017 at 09:46:44PM -0500, Jeff Cody wrote:
> > BTW an alternative to adding individual bools is to implement a finite
> > state machine for the entire coroutine lifecycle. A single function can
> > validate all state transitions:
> >
> > void check_state_transition(CoState old, CoState new,
> > const char *action)
> > {
> > const char *errmsg = fsm[old][new];
> > if (!errmsg) {
> > return; /* valid transition! */
> > }
> >
> > fprintf(stderr, "Cannot %s coroutine from %s state\n",
> > action, state_name[old]);
> > abort();
> > }
> >
> > Specifying fsm[][] forces us to think through all possible state
> > transitions. This approach is proactive whereas adding bool flags is
> > reactive since it only covers a subset of states that were encountered
> > after crashes. I'm not sure if it's worth it though :).
>
> Interesting idea; maybe more for 2.12 instead of 2.11, though?
Sure.
Stefan
signature.asc
Description: PGP signature
[Qemu-block] [PATCH 2/5] coroutine: abort if we try to enter coroutine scheduled for another ctx, Jeff Cody, 2017/11/19
[Qemu-block] [PATCH 3/5] coroutines: abort if we try to enter a still-sleeping coroutine, Jeff Cody, 2017/11/19
Re: [Qemu-block] [PATCH 3/5] coroutines: abort if we try to enter a still-sleeping coroutine, Paolo Bonzini, 2017/11/20
- Re: [Qemu-block] [PATCH 3/5] coroutines: abort if we try to enter a still-sleeping coroutine, Jeff Cody, 2017/11/20
- Re: [Qemu-block] [PATCH 3/5] coroutines: abort if we try to enter a still-sleeping coroutine, Paolo Bonzini, 2017/11/20
- Re: [Qemu-block] [PATCH 3/5] coroutines: abort if we try to enter a still-sleeping coroutine, Jeff Cody, 2017/11/20
- Re: [Qemu-block] [PATCH 3/5] coroutines: abort if we try to enter a still-sleeping coroutine, Paolo Bonzini, 2017/11/20
- Re: [Qemu-block] [PATCH 3/5] coroutines: abort if we try to enter a still-sleeping coroutine, Jeff Cody, 2017/11/20
[Qemu-block] [PATCH 4/5] qemu-iotests: add option in common.qemu for mismatch only, Jeff Cody, 2017/11/19
[Qemu-block] [PATCH 5/5] qemu-iotest: add test for blockjob coroutine race condition, Jeff Cody, 2017/11/19