From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: [PATCH v6 05/11] pvqspinlock, x86: Allow unfair spinlock in a PV guest Date: Fri, 14 Mar 2014 09:48:09 +0100 Message-ID: <5322C249.6060502__890.231811399822$1394787006$gmane$org@redhat.com> References: <1394650498-30118-1-git-send-email-Waiman.Long@hp.com> <1394650498-30118-6-git-send-email-Waiman.Long@hp.com> <20140313151515.GC25546@laptop.programming.kicks-ass.net> <53220F7F.2040701@hp.com> <20140314083001.GN27965@twins.programming.kicks-ass.net> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1WONmq-0007zF-RT for xen-devel@lists.xenproject.org; Fri, 14 Mar 2014 08:48:17 +0000 Received: by mail-ee0-f41.google.com with SMTP id t10so1090181eei.28 for ; Fri, 14 Mar 2014 01:48:15 -0700 (PDT) In-Reply-To: <20140314083001.GN27965@twins.programming.kicks-ass.net> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Peter Zijlstra , Waiman Long Cc: Jeremy Fitzhardinge , Raghavendra K T , Gleb Natapov , virtualization@lists.linux-foundation.org, Andi Kleen , "H. Peter Anvin" , Michel Lespinasse , Thomas Gleixner , linux-arch@vger.kernel.org, kvm@vger.kernel.org, x86@kernel.org, Alok Kataria , Ingo Molnar , xen-devel@lists.xenproject.org, "Paul E. McKenney" , Arnd Bergmann , Scott J Norton , Steven Rostedt , Chris Wright , Boris Ostrovsky , Aswin Chandramouleeswaran , Oleg Nesterov List-Id: xen-devel@lists.xenproject.org Il 14/03/2014 09:30, Peter Zijlstra ha scritto: > Take the situation of 3 (v)CPUs where cpu0 holds the lock but is > preempted. cpu1 queues, cpu2 queues. Then cpu1 gets preempted, after > which cpu0 gets back online. > > The simple test-and-set lock will now let cpu2 acquire. Your queue > however will just sit there spinning, waiting for cpu1 to come back from > holiday. > > I think you're way over engineering this. Just do the simple > test-and-set lock for virt && !paravirt (as I think Paolo Bonzini > suggested RHEL6 already does). Exactly. Paolo