qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [RFC] vhost: Can we change synchronize_rcu to call_rcu


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [RFC] vhost: Can we change synchronize_rcu to call_rcu in vhost_set_memory() in vhost kernel module?
Date: Fri, 09 May 2014 10:14:59 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0

Il 09/05/2014 03:57, Gonglei (Arei) ha scritto:
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?

Yes, for example enabling/disabling PCI BARs would have that effect.

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]