linux-stable/drivers/virt/acrn
Shuo Liu d8ad515156 virt: acrn: Introduce ioeventfd
ioeventfd is a mechanism to register PIO/MMIO regions to trigger an
eventfd signal when written to by a User VM. ACRN userspace can register
any arbitrary I/O address with a corresponding eventfd and then pass the
eventfd to a specific end-point of interest for handling.

Vhost is a kernel-level virtio server which uses eventfd for signalling.
To support vhost on ACRN, ioeventfd is introduced in HSM.

A new I/O client dedicated to ioeventfd is associated with a User VM
during VM creation. HSM provides ioctls to associate an I/O region with
a eventfd. The I/O client signals a eventfd once its corresponding I/O
region is matched with an I/O request.

Cc: Zhi Wang <zhi.a.wang@intel.com>
Cc: Zhenyu Wang <zhenyuw@linux.intel.com>
Cc: Yu Wang <yu1.wang@intel.com>
Cc: Reinette Chatre <reinette.chatre@intel.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Reviewed-by: Zhi Wang <zhi.a.wang@intel.com>
Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Shuo Liu <shuo.a.liu@intel.com>
Link: https://lore.kernel.org/r/20210207031040.49576-16-shuo.a.liu@intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2021-02-09 10:58:19 +01:00
..
acrn_drv.h virt: acrn: Introduce ioeventfd 2021-02-09 10:58:19 +01:00
hsm.c virt: acrn: Introduce ioeventfd 2021-02-09 10:58:19 +01:00
hypercall.h virt: acrn: Introduce interfaces to query C-states and P-states allowed by hypervisor 2021-02-09 10:58:19 +01:00
ioeventfd.c virt: acrn: Introduce ioeventfd 2021-02-09 10:58:19 +01:00
ioreq.c virt: acrn: Introduce I/O ranges operation interfaces 2021-02-09 10:58:19 +01:00
Kconfig virt: acrn: Introduce ioeventfd 2021-02-09 10:58:19 +01:00
Makefile virt: acrn: Introduce ioeventfd 2021-02-09 10:58:19 +01:00
mm.c virt: acrn: Introduce EPT mapping management 2021-02-09 10:58:19 +01:00
vm.c virt: acrn: Introduce ioeventfd 2021-02-09 10:58:19 +01:00