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?