From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH v3 14/22] kvm: Fix race between timer signals and vcpu entry under !IOTHREAD Date: Mon, 31 Jan 2011 12:03:23 +0200 Message-ID: <4D4688EB.30408@redhat.com> References: <4D417F1F.7020302@siemens.com> <4D418230.1010801@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , kvm@vger.kernel.org, qemu-devel@nongnu.org, Stefan Hajnoczi To: Jan Kiszka Return-path: Received: from mx1.redhat.com ([209.132.183.28]:58237 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751895Ab1AaKDc (ORCPT ); Mon, 31 Jan 2011 05:03:32 -0500 In-Reply-To: <4D418230.1010801@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: On 01/27/2011 04:33 PM, Jan Kiszka wrote: > 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 > CC: Stefan Hajnoczi > --- > > I don't want to invest that much into !IOTHREAD anymore, so let's see if > the proposed catch&abort is acceptable. > I don't understand the dependency on signalfd. The normal way of doing things, either waiting for the signal in sigtimedwait() or in ioctl(KVM_RUN), works with SIGALRM just fine. -- error compiling committee.c: too many arguments to function