From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=38713 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1PjtcP-0000XX-NS for qemu-devel@nongnu.org; Mon, 31 Jan 2011 08:16:35 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1PjtcO-0004Uu-KK for qemu-devel@nongnu.org; Mon, 31 Jan 2011 08:16:33 -0500 Received: from mx1.redhat.com ([209.132.183.28]:32873) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1PjtcO-0004UX-9U for qemu-devel@nongnu.org; Mon, 31 Jan 2011 08:16:32 -0500 Message-ID: <4D46B62B.8020106@redhat.com> Date: Mon, 31 Jan 2011 15:16:27 +0200 From: Avi Kivity MIME-Version: 1.0 References: <4D468470.4060300@redhat.com> <4D469AAF.7090002@siemens.com> In-Reply-To: <4D469AAF.7090002@siemens.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Subject: [Qemu-devel] Re: [PATCH 01/22] Prevent abortion on multiple VCPU kicks List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Jan Kiszka Cc: Marcelo Tosatti , "qemu-devel@nongnu.org" , "kvm@vger.kernel.org" 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