Hi, Vhost devices need to do VHOST_SET_MEM_TABLE ioctl in vhost_dev_start() to tell vhost kernel modules GPA to HVA memory mappings, which consume is expensively. The reason is same as KVM_SET_GSI_ROUTING ioctl. That is, in ioctl processing, kmod and vhost calls synchronize_rcu() to wait for grace period to free old memory. In KVM_SET_GSI_ROUTING case, we cannot simply change synchronize_rcu to call_rcu, since this may leads to DOS attacks if guest VM keeps setting IRQ affinity. In VHOST_SET_MEM_TABLE case, I wonder if we can change synchronize_rcu() to call_rcu(), i.e., is it possible to trigger DOS attack in guest? There are some cases QEMU would do VHOST_SET_MEM_TABLE ioctl, like VM start/reboot/attach vhost devices, and RAM memory regions in system memory address space change.
And I'd like to know if guest activities could lead to RAM memory regions change? Can you give me some advices? Thanks! Best regards, -Gonglei