[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] xen-bus/block: explicitly assign event channels to an AioCon
Re: [PATCH] xen-bus/block: explicitly assign event channels to an AioContext
Wed, 29 Jan 2020 22:22:14 +0000
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:68.0) Gecko/20100101 Thunderbird/68.4.1
On 19/12/2019 17:11, Anthony PERARD wrote:
On Mon, Dec 16, 2019 at 02:34:51PM +0000, Paul Durrant wrote:
It is not safe to close an event channel from the QEMU main thread when
that channel's poller is running in IOThread context.
This patch adds a new xen_device_set_event_channel_context() function
to explicitly assign the channel AioContext, and modifies
xen_device_bind_event_channel() to initially assign the channel's poller
to the QEMU main thread context. The code in xen-block's dataplane is
then modified to assign the channel to IOThread context during
xen_block_dataplane_start() and de-assign it during in
xen_block_dataplane_stop(), such that the channel is always assigned
back to main thread context before it is closed. aio_set_fd_handler()
already deals with all the necessary synchronization when moving an fd
between AioContext-s so no extra code is needed to manage this.
Reported-by: Julien Grall <address@hidden>
Signed-off-by: Paul Durrant <address@hidden>
Reviewed-by: Anthony PERARD <address@hidden>
I can't find the patch in QEMU upstream. Are we missing any ack/review
for this patch?
Tested against an HVM debian guest with a QCOW2 image as system disk, and
as a hot-plugged/unplgged secondary disk.
And I've run an osstest flight with the patch.
- Re: [PATCH] xen-bus/block: explicitly assign event channels to an AioContext,
Julien Grall <=