> -----Original Message----- > From: Stefan Hajnoczi <stefa...@redhat.com> > Sent: 28 March 2023 16:51 > To: Woodhouse, David <d...@amazon.co.uk>; Durrant, Paul > <pdurr...@amazon.co.uk> > Cc: qemu-devel@nongnu.org; qemu-bl...@nongnu.org > Subject: [EXTERNAL] aio_set_event_notifier(is_external=true) in Xen code? > > Hi, > I'm removing the aio_disable_external() API from QEMU and noticed that > Xen code calls aio_set_fd_handler(is_external=true) in hw/xen/xen-bus.c > and hw/i386/kvm/xen_xenstore.c. > > It wasn't clear to me whether is_external=true is necessary here. > is_external=true is mainly used to temporarily pause I/O submission in > the QEMU block layer. Maybe is_external=true was chosen out of caution > but actually has no effect in this code. > > Does the Xen code rely on is_external=true?
That's a good question. The call in xen-bus.c has been there since commit 83361a8a1f932, which was when it substituted the old call to qemu_set_fd_handler(). I suspect this was out of caution (or possibly misunderstanding) at the time, although setting the call to xen_device_set_event_channel_context() in xen_block_dataplane_stop() does suggest it may be happening while I/O could be in progress so it could have been in response to problems caught in testing. I suspect the code in xen_xenstore.c just copied what xen-bus.c did. Sorry I can't give you a definitive answer... it's all rather a long time ago. Cheers, Paul