diff options
author | Viresh Kumar <viresh.kumar@linaro.org> | 2023-08-22 15:15:07 +0530 |
---|---|---|
committer | Juergen Gross <jgross@suse.com> | 2023-08-22 12:12:50 +0200 |
commit | f8941e6c4c712948663ec5d7bbb546f1a0f4e3f6 (patch) | |
tree | 5ceab4ee6c3ad064c3c17d863d5c6c60fe1b628f /drivers/xen/Kconfig | |
parent | 442466e04f5f1b4616d3f023ff19166b82e19989 (diff) | |
download | linux-stable-f8941e6c4c712948663ec5d7bbb546f1a0f4e3f6.tar.gz linux-stable-f8941e6c4c712948663ec5d7bbb546f1a0f4e3f6.tar.bz2 linux-stable-f8941e6c4c712948663ec5d7bbb546f1a0f4e3f6.zip |
xen: privcmd: Add support for irqfd
Xen provides support for injecting interrupts to the guests via the
HYPERVISOR_dm_op() hypercall. The same is used by the Virtio based
device backend implementations, in an inefficient manner currently.
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 poll the Eventfds and raise an interrupt to the
guest using the Xen based mechanism. 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 interrupt
details and eventfd, which lets the kernel take care of polling the
eventfd and raising of the interrupt, instead of handling this in user
space (which involves an extra context switch).
This patch adds support to inject a specific interrupt to guest using
the eventfd mechanism, by preventing the extra context switch.
Inspired by existing implementations for KVM, etc..
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: Juergen Gross <jgross@suse.com>
Link: https://lore.kernel.org/r/8e724ac1f50c2bc1eb8da9b3ff6166f1372570aa.1692697321.git.viresh.kumar@linaro.org
Signed-off-by: Juergen Gross <jgross@suse.com>
Diffstat (limited to 'drivers/xen/Kconfig')
-rw-r--r-- | drivers/xen/Kconfig | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig index d5d7c402b651..d43153fec18e 100644 --- a/drivers/xen/Kconfig +++ b/drivers/xen/Kconfig @@ -269,6 +269,13 @@ config XEN_PRIVCMD disaggregated Xen setups this driver might be needed for other domains, too. +config XEN_PRIVCMD_IRQFD + bool "Xen irqfd support" + depends on XEN_PRIVCMD && XEN_VIRTIO && EVENTFD + help + Using the irqfd mechanism a virtio backend running in a daemon can + speed up interrupt injection into a guest. + config XEN_ACPI_PROCESSOR tristate "Xen ACPI processor" depends on XEN && XEN_PV_DOM0 && X86 && ACPI_PROCESSOR && CPU_FREQ |