[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-block] [PATCH v2 05/13] io: Remove redundant read/write_corout
From: |
Paolo Bonzini |
Subject: |
Re: [Qemu-block] [PATCH v2 05/13] io: Remove redundant read/write_coroutine assignments |
Date: |
Wed, 20 Feb 2019 19:01:22 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 |
On 20/02/19 18:48, Kevin Wolf wrote:
> -static void qio_channel_set_aio_fd_handlers(QIOChannel *ioc);
> -
> static void qio_channel_restart_read(void *opaque)
> {
> QIOChannel *ioc = opaque;
> Coroutine *co = ioc->read_coroutine;
>
> - ioc->read_coroutine = NULL;
> - qio_channel_set_aio_fd_handlers(ioc);
> - aio_co_wake(co);
> + assert(qemu_get_current_aio_context() ==
> + qemu_coroutine_get_aio_context(co));
> + qemu_coroutine_enter(co);
> }
>
> static void qio_channel_restart_write(void *opaque)
> @@ -417,9 +415,9 @@ static void qio_channel_restart_write(void *opaque)
> QIOChannel *ioc = opaque;
> Coroutine *co = ioc->write_coroutine;
>
> - ioc->write_coroutine = NULL;
> - qio_channel_set_aio_fd_handlers(ioc);
> - aio_co_wake(co);
> + assert(qemu_get_current_aio_context() ==
> + qemu_coroutine_get_aio_context(co));
> + qemu_coroutine_enter(co);
> }
>
> static void qio_channel_set_aio_fd_handlers(QIOChannel *ioc)
>
aio_co_wake was also acquiring/releasing the AioContext, so
that needs to stay for now.
Paolo
- [Qemu-block] [PATCH v2 00/13] block: bdrv_set_aio_context() related fixes, Kevin Wolf, 2019/02/20
- [Qemu-block] [PATCH v2 01/13] block-backend: Make blk_inc/dec_in_flight public, Kevin Wolf, 2019/02/20
- [Qemu-block] [PATCH v2 02/13] virtio-blk: Increase in_flight for request restart BH, Kevin Wolf, 2019/02/20
- [Qemu-block] [PATCH v2 03/13] nbd: Restrict connection_co reentrance, Kevin Wolf, 2019/02/20
- [Qemu-block] [PATCH v2 04/13] io: Make qio_channel_yield() interruptible, Kevin Wolf, 2019/02/20
- [Qemu-block] [PATCH v2 05/13] io: Remove redundant read/write_coroutine assignments, Kevin Wolf, 2019/02/20
- Re: [Qemu-block] [PATCH v2 05/13] io: Remove redundant read/write_coroutine assignments,
Paolo Bonzini <=
[Qemu-block] [PATCH v2 06/13] nbd: Move nbd_read_eof() to nbd/client.c, Kevin Wolf, 2019/02/20
[Qemu-block] [PATCH v2 07/13] nbd: Use low-level QIOChannel API in nbd_read_eof(), Kevin Wolf, 2019/02/20
[Qemu-block] [PATCH v2 10/13] block: Fix AioContext switch for drained node, Kevin Wolf, 2019/02/20
[Qemu-block] [PATCH v2 08/13] nbd: Increase bs->in_flight during AioContext switch, Kevin Wolf, 2019/02/20
[Qemu-block] [PATCH v2 11/13] test-bdrv-drain: AioContext switch in drained section, Kevin Wolf, 2019/02/20
[Qemu-block] [PATCH v2 09/13] block: Don't poll in bdrv_set_aio_context(), Kevin Wolf, 2019/02/20
[Qemu-block] [PATCH v2 12/13] block: Use normal drain for bdrv_set_aio_context(), Kevin Wolf, 2019/02/20