mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-24 05:01:03 +02:00
virt: acrn: Introduce irqfd
irqfd is a mechanism to inject a specific interrupt to a User VM using a decoupled eventfd mechanism. Vhost is a kernel-level virtio server which uses eventfd for interrupt injection. To support vhost on ACRN, irqfd is introduced in HSM. HSM provides ioctls to associate a virtual Message Signaled Interrupt (MSI) with an eventfd. The corresponding virtual MSI will be injected into a User VM once the eventfd got signal. 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-17-shuo.a.liu@intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
d8ad515156
commit
aa3b483ff1
@@ -505,6 +505,19 @@ struct acrn_ioeventfd {
|
||||
__u64 data;
|
||||
};
|
||||
|
||||
#define ACRN_IRQFD_FLAG_DEASSIGN 0x01
|
||||
/**
|
||||
* struct acrn_irqfd - Data to operate a &struct hsm_irqfd
|
||||
* @fd: The fd of eventfd associated with a hsm_irqfd
|
||||
* @flags: Logical-OR of ACRN_IRQFD_FLAG_*
|
||||
* @msi: Info of MSI associated with the irqfd
|
||||
*/
|
||||
struct acrn_irqfd {
|
||||
__s32 fd;
|
||||
__u32 flags;
|
||||
struct acrn_msi_entry msi;
|
||||
};
|
||||
|
||||
/* The ioctl type, documented in ioctl-number.rst */
|
||||
#define ACRN_IOCTL_TYPE 0xA2
|
||||
|
||||
@@ -561,5 +574,7 @@ struct acrn_ioeventfd {
|
||||
|
||||
#define ACRN_IOCTL_IOEVENTFD \
|
||||
_IOW(ACRN_IOCTL_TYPE, 0x70, struct acrn_ioeventfd)
|
||||
#define ACRN_IOCTL_IRQFD \
|
||||
_IOW(ACRN_IOCTL_TYPE, 0x71, struct acrn_irqfd)
|
||||
|
||||
#endif /* _UAPI_ACRN_H */
|
||||
|
Reference in New Issue
Block a user