From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:50515) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bnto5-0000QL-LL for qemu-devel@nongnu.org; Sat, 24 Sep 2016 16:44:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bnto1-0005mZ-LK for qemu-devel@nongnu.org; Sat, 24 Sep 2016 16:44:21 -0400 Received: from mail-pf0-f194.google.com ([209.85.192.194]:36057) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bnto1-0005m6-GD for qemu-devel@nongnu.org; Sat, 24 Sep 2016 16:44:17 -0400 Received: by mail-pf0-f194.google.com with SMTP id n24so6911543pfb.3 for ; Sat, 24 Sep 2016 13:44:17 -0700 (PDT) Sender: Richard Henderson References: <1474615909-17069-1-git-send-email-pbonzini@redhat.com> <1474615909-17069-17-git-send-email-pbonzini@redhat.com> <20d59fed-4187-28d2-c179-5e66571d5e49@twiddle.net> <1267831407.2636295.1474717973602.JavaMail.zimbra@redhat.com> From: Richard Henderson Message-ID: Date: Sat, 24 Sep 2016 13:43:14 -0700 MIME-Version: 1.0 In-Reply-To: <1267831407.2636295.1474717973602.JavaMail.zimbra@redhat.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 16/16] cpus-common: lock-free fast path for cpu_exec_start/end List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: qemu-devel@nongnu.org, serge fdrv , cota@braap.org, alex bennee , sergey fedorov On 09/24/2016 04:52 AM, Paolo Bonzini wrote: > > > ----- Original Message ----- >> From: "Richard Henderson" >> To: "Paolo Bonzini" , qemu-devel@nongnu.org >> Cc: "serge fdrv" , cota@braap.org, "alex bennee" , "sergey fedorov" >> >> Sent: Friday, September 23, 2016 8:23:46 PM >> Subject: Re: [Qemu-devel] [PATCH 16/16] cpus-common: lock-free fast path for cpu_exec_start/end >> >> On 09/23/2016 12:31 AM, Paolo Bonzini wrote: >>> + if (atomic_read(&other_cpu->running)) { >> ... >>> + atomic_set(&cpu->running, true); >> ... >>> + cpu->running = false; >> ... >>> + cpu->running = true; >> >> Inconsistent use of atomics. I don't see that the cpu_list_lock protects the >> last two lines in any way. > > It does: > > qemu_mutex_lock(&qemu_cpu_list_lock); What I meant is that I don't see that the mutex avoids the need for atomic_set. > but I can change it anyway to atomic_set. Thanks, r~