Messages in this thread | | | Date | Mon, 16 Oct 2023 09:25:44 +0200 | Subject | Re: [PATCH V4 4/4] xen: privcmd: Add support for ioeventfd | From | Juergen Gross <> |
| |
On 16.10.23 09:11, Viresh Kumar wrote: > Virtio guests send VIRTIO_MMIO_QUEUE_NOTIFY notification when they need > to notify the backend of an update to the status of the virtqueue. The > backend or another entity, polls the MMIO address for updates to know > when the notification is sent. > > It works well if the backend does this polling by itself. But as we move > towards generic backend implementations, we end up implementing this in > a separate user-space program. > > Generally, the Virtio backends are implemented to work with the Eventfd > based mechanism. In order to make such backends work with Xen, another > software layer needs to do the polling and send an event via eventfd to > the backend once the notification from guest is received. This results > in an extra context switch. > > This is not a new problem in Linux though. It is present with other > hypervisors like KVM, etc. as well. The generic solution implemented in > the kernel for them is to provide an IOCTL call to pass the address to > poll and eventfd, which lets the kernel take care of polling and raise > an event on the eventfd, instead of handling this in user space (which > involves an extra context switch). > > This patch adds similar support for xen. > > Inspired by existing implementations for KVM, etc.. > > This also copies ioreq.h header file (only struct ioreq and related > macros) from Xen's source tree (Top commit 5d84f07fe6bf ("xen/pci: drop > remaining uses of bool_t")). > > Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
Juergen
[unhandled content-type:application/pgp-keys][unhandled content-type:application/pgp-signature] | |