Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753599Ab3DVMwq (ORCPT ); Mon, 22 Apr 2013 08:52:46 -0400 Received: from mx1.redhat.com ([209.132.183.28]:42219 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752401Ab3DVMwp (ORCPT ); Mon, 22 Apr 2013 08:52:45 -0400 Message-ID: <51753289.70406@redhat.com> Date: Mon, 22 Apr 2013 08:52:25 -0400 From: Rik van Riel User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130402 Thunderbird/17.0.5 MIME-Version: 1.0 To: Peter Zijlstra CC: Jiannan Ouyang , LKML , Raghavendra K T , Avi Kivity , Gleb Natapov , Ingo Molnar , Marcelo Tosatti , Srikar , "H. Peter Anvin" , "Nikunj A. Dadhania" , KVM , Thomas Gleixner , Chegu Vinod , "Andrew M. Theurer" , Srivatsa Vaddagiri , Andrew Jones , Karen Noel Subject: Re: Preemptable Ticket Spinlock References: <51745650.9050204@redhat.com> <1366631460.4443.3.camel@laptop> In-Reply-To: <1366631460.4443.3.camel@laptop> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1346 Lines: 34 On 04/22/2013 07:51 AM, Peter Zijlstra wrote: > On Sun, 2013-04-21 at 17:12 -0400, Rik van Riel wrote: >> >> If we always incremented the ticket number by 2 (instead of 1), then >> we could use the lower bit of the ticket number as the spinlock. > > ISTR that paravirt ticket locks already do that and use the lsb to > indicate the unlock needs to perform wakeups. > > Also, since all of this is virt nonsense, shouldn't it live in the > paravirt ticket lock code and leave the native code as is? Sure, but that is still no reason not to have the virt implementation be as fast as possible, and share the same data type as the non-virt implementation. Also, is it guaranteed that the native spin_lock code has not been called yet before we switch over to the paravirt functions? If the native spin_lock code has been called already at that time, the native code would still need to be modified to increment the ticket number by 2, so we end up with a compatible value in each spin lock's .tickets field, and prevent a deadlock after we switch over to the paravirt variant. -- All rights reversed -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/