kvm: Fix race between timer signals and vcpu entry under !IOTHREAD
commitde758970b60f129ed9d024cc5c90c1f57fab2fd4
authorJan Kiszka <jan.kiszka@siemens.com>
Tue, 1 Feb 2011 21:15:57 +0000 (1 22:15 +0100)
committerMarcelo Tosatti <mtosatti@redhat.com>
Mon, 14 Feb 2011 14:39:45 +0000 (14 12:39 -0200)
tree5324fd7b9ecd4997d8f5d83ac9c26635329346eb
parentd0f294cec0ee25461a0a15b889929c5c7dc983cd
kvm: Fix race between timer signals and vcpu entry under !IOTHREAD

Found by Stefan Hajnoczi: There is a race in kvm_cpu_exec between
checking for exit_request on vcpu entry and timer signals arriving
before KVM starts to catch them. Plug it by blocking both timer related
signals also on !CONFIG_IOTHREAD and process those via signalfd.

As this fix depends on real signalfd support (otherwise the timer
signals only kick the compat helper thread, and the main thread hangs),
we need to detect the invalid constellation and abort configure.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
CC: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
configure
cpus.c