mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-20 04:33:55 +00:00
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:
parent
0f599e8d56
commit
0ec9aaea6f
@ -2000,7 +2000,11 @@ int virtio_register_ioeventfd(struct virtio_base *base, int idx, bool is_registe
|
|||||||
|
|
||||||
if (!is_register)
|
if (!is_register)
|
||||||
ioeventfd.flags = ACRN_IOEVENTFD_FLAG_DEASSIGN;
|
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 */
|
/* register ioeventfd for kick */
|
||||||
if (base->device_caps & (1UL << VIRTIO_F_VERSION_1)) {
|
if (base->device_caps & (1UL << VIRTIO_F_VERSION_1)) {
|
||||||
/*
|
/*
|
||||||
|
@ -226,6 +226,7 @@ struct acrn_ioeventfd {
|
|||||||
#define ACRN_IOEVENTFD_FLAG_PIO 0x01
|
#define ACRN_IOEVENTFD_FLAG_PIO 0x01
|
||||||
#define ACRN_IOEVENTFD_FLAG_DATAMATCH 0x02
|
#define ACRN_IOEVENTFD_FLAG_DATAMATCH 0x02
|
||||||
#define ACRN_IOEVENTFD_FLAG_DEASSIGN 0x04
|
#define ACRN_IOEVENTFD_FLAG_DEASSIGN 0x04
|
||||||
|
#define ACRN_IOEVENTFD_FLAG_ASYNCIO 0x08
|
||||||
/** file descriptor of the eventfd of this ioeventfd */
|
/** file descriptor of the eventfd of this ioeventfd */
|
||||||
int32_t fd;
|
int32_t fd;
|
||||||
/** flag for ioeventfd ioctl */
|
/** flag for ioeventfd ioctl */
|
||||||
|
Loading…
Reference in New Issue
Block a user