From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 01/22] Prevent abortion on multiple VCPU kicks Date: Mon, 31 Jan 2011 15:16:27 +0200 Message-ID: <4D46B62B.8020106@redhat.com> References: <4D468470.4060300@redhat.com> <4D469AAF.7090002@siemens.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: Marcelo Tosatti , "kvm@vger.kernel.org" , "qemu-devel@nongnu.org" To: Jan Kiszka Return-path: Received: from mx1.redhat.com ([209.132.183.28]:25547 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755300Ab1AaNQg (ORCPT ); Mon, 31 Jan 2011 08:16:36 -0500 In-Reply-To: <4D469AAF.7090002@siemens.com> Sender: kvm-owner@vger.kernel.org List-ID: On 01/31/2011 01:19 PM, Jan Kiszka wrote: > On 2011-01-31 10:44, Avi Kivity wrote: > > On 01/27/2011 03:09 PM, Jan Kiszka wrote: > >> If we call qemu_cpu_kick more than once before the target was able to > >> process the signal, pthread_kill will fail, and qemu will abort. Prevent > >> this by avoiding the redundant signal. > >> > > > > Doesn't fit with the manual page (or with the idea that signals are > > asynchronous): > > > > NAME > > pthread_kill - send a signal to a thread > > > > > > ... > > > > ERRORS > > ESRCH No thread with the ID thread could be found. > > > > EINVAL An invalid signal was specified. > > > > Valid remark, but I was receiving EAGAIN for blocked RT signals. Don't > know if this is Linux-specific. A quick glance at the man pages did not > reveal if this is allowed or at least gray area. > } else if (!is_si_special(info)) { if (sig >= SIGRTMIN && info->si_code != SI_USER) { /* * Queue overflow, abort. We may abort if the * signal was rt and sent by user using something * other than kill(). */ trace_signal_overflow_fail(sig, group, info); return -EAGAIN; } > However, even when selectively ignoring this, it's more efficient to > catch the redundant signaling in user space. Yes. -- error compiling committee.c: too many arguments to function