mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2026-01-05 07:35:31 +00:00
hv: support asyncio request
Current IO emulation is synchronous. The user VM need to wait for the completion of the the I/O request before return. But Virtio Spec introduces introduces asynchronous IO with a new register in MMIO/PIO space named NOTIFY, to be used for FE driver to notify BE driver, ACRN hypervisor can emulate this register by sending a notification to vCPU in Service VM side. This way, FE side can resume to work without waiting for the full completion of BE side response. Tracked-On: #8209 Signed-off-by: Conghui <conghui.chen@intel.com> Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
@@ -77,7 +77,7 @@ uint32_t sbuf_put(struct shared_buf *sbuf, uint8_t *data)
|
||||
return ele_size;
|
||||
}
|
||||
|
||||
int32_t sbuf_setup_common(__unused struct acrn_vm *vm, uint16_t cpu_id, uint32_t sbuf_id, uint64_t *hva)
|
||||
int32_t sbuf_setup_common(struct acrn_vm *vm, uint16_t cpu_id, uint32_t sbuf_id, uint64_t *hva)
|
||||
{
|
||||
int32_t ret = 0;
|
||||
|
||||
@@ -88,6 +88,9 @@ int32_t sbuf_setup_common(__unused struct acrn_vm *vm, uint16_t cpu_id, uint32_t
|
||||
case ACRN_SOCWATCH:
|
||||
ret = sbuf_share_setup(cpu_id, sbuf_id, hva);
|
||||
break;
|
||||
case ACRN_ASYNCIO:
|
||||
ret = init_asyncio(vm, hva);
|
||||
break;
|
||||
default:
|
||||
pr_err("%s not support sbuf_id %d", __func__, sbuf_id);
|
||||
ret = -1;
|
||||
|
||||
Reference in New Issue
Block a user