dm: support asyncio in ioeventfd

Add a new flag in ioeventfd ioctl to support asyncio. After that, the IO
request will be processed in asyncio path by kernel and hypervisor.

Tracked-On: #8209
Signed-off-by: Conghui <conghui.chen@intel.com>
Acked-by: Wang, Yu1 <yu1.wang@intel.com>
This commit is contained in:
Conghui 2022-08-24 10:09:23 +08:00 committed by acrnsi-robot
parent 0f599e8d56
commit 0ec9aaea6f
2 changed files with 6 additions and 1 deletions

View File

@ -2000,7 +2000,11 @@ int virtio_register_ioeventfd(struct virtio_base *base, int idx, bool is_registe
if (!is_register)
ioeventfd.flags = ACRN_IOEVENTFD_FLAG_DEASSIGN;
else
/* Enable ASYNCIO by default. If ASYNCIO is not supported by kernel
* or hyperviosr, this flag will be ignored.
*/
ioeventfd.flags = ACRN_IOEVENTFD_FLAG_ASYNCIO;
/* register ioeventfd for kick */
if (base->device_caps & (1UL << VIRTIO_F_VERSION_1)) {
/*

View File

@ -226,6 +226,7 @@ struct acrn_ioeventfd {
#define ACRN_IOEVENTFD_FLAG_PIO 0x01
#define ACRN_IOEVENTFD_FLAG_DATAMATCH 0x02
#define ACRN_IOEVENTFD_FLAG_DEASSIGN 0x04
#define ACRN_IOEVENTFD_FLAG_ASYNCIO 0x08
/** file descriptor of the eventfd of this ioeventfd */
int32_t fd;
/** flag for ioeventfd ioctl */