惠伟:virtio代码分析(一)-qemu部分zhuanlan.zhihu.com 假如我们加个参数vhost=on,vhost定义了一堆api,qemu把virtio收发包和用于通知收发包的功能offload给kernel vhost-net了,这包就不用从kernel到用户态的qemu,再从qemu共享给guest,直接从kernel共享给guest,减少一次kernel到用户态qemu的复制开销。 qemu对vhost-ne...
.commit = vhost_commit, .region_add = vhost_region_addnop, .region_nop = vhost_region_addnop, .log_start = vhost_log_start, .log_stop = vhost_log_stop, .log_sync = vhost_log_sync, .log_global_start = vhost_log_global_start, .log_global_stop = vhost_log_global_...
intmain() └─staticintconfigure_accelerator() └─intkvm_init()//初始化 KVM├─intkvm_ioctl(KVM_CREATE_VM)//创建 VM├─intkvm_arch_init()//针对不同的架构进行初始化└─voidmemory_listener_register()//注册 kvm_memory_listener└─staticvoidlistener_add_address_space()//调用 region_add 回调...
惠伟:virtio代码分析(一)-qemu部分假如我们加个参数vhost=on,vhost定义了一堆api,qemu把virtio收发包和用于通知收发包的功能offload给kernel vhost-net了,这包就不用从kernel到用户态的qemu,再从qemu共享给gu…
.vhost_send_device_iotlb_msg=vhost_user_send_device_iotlb_msg, .vhost_get_config=vhost_user_get_config, .vhost_set_config=vhost_user_set_config, .vhost_crypto_create_session=vhost_user_crypto_create_session, .vhost_crypto_close_session=vhost_user_crypto_close_session, ...
{ case VHOST_IOTLB_UPDATE: if (!dev->iotlb) { ret = -EFAULT; break; } if (!umem_access_ok(msg->uaddr, msg->size, msg->perm)) { ret = -EFAULT; break; } vhost_vq_meta_reset(dev); if (vhost_iotlb_add_range(dev->iotlb, msg->iova, msg->iova + msg->size - 1, msg->...