From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933214AbdKATAy (ORCPT ); Wed, 1 Nov 2017 15:00:54 -0400 Received: from userp1040.oracle.com ([156.151.31.81]:37689 "EHLO userp1040.oracle.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932209AbdKATAx (ORCPT ); Wed, 1 Nov 2017 15:00:53 -0400 Subject: Re: [PATCH] x86/paravirt: Add kernel parameter to choose paravirt lock type To: Waiman Long , Juergen Gross , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , Jonathan Corbet References: <1509550367-19255-1-git-send-email-longman@redhat.com> <404a9fab-03ff-174e-4ece-79932a6f302c@suse.com> <409ede92-5243-0d9b-7893-b596f3f353aa@redhat.com> Cc: x86@kernel.org, virtualization@lists.linux-foundation.org, kvm@vger.kernel.org, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, Alok Kataria , Rusty Russell , Paolo Bonzini , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Peter Zijlstra From: Boris Ostrovsky Message-ID: <5539b95d-eac4-cc09-2cfc-1452d2751fa0@oracle.com> Date: Wed, 1 Nov 2017 15:01:21 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <409ede92-5243-0d9b-7893-b596f3f353aa@redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Source-IP: aserv0021.oracle.com [141.146.126.233] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 11/01/2017 12:28 PM, Waiman Long wrote: > On 11/01/2017 11:51 AM, Juergen Gross wrote: >> On 01/11/17 16:32, Waiman Long wrote: >>> Currently, there are 3 different lock types that can be chosen for >>> the x86 architecture: >>> >>> - qspinlock >>> - pvqspinlock >>> - unfair lock >>> >>> One of the above lock types will be chosen at boot time depending on >>> a number of different factors. >>> >>> Ideally, the hypervisors should be able to pick the best performing >>> lock type for the current VM configuration. That is not currently >>> the case as the performance of each lock type are affected by many >>> different factors like the number of vCPUs in the VM, the amount vCPU >>> overcommitment, the CPU type and so on. >>> >>> Generally speaking, unfair lock performs well for VMs with a small >>> number of vCPUs. Native qspinlock may perform better than pvqspinlock >>> if there is vCPU pinning and there is no vCPU over-commitment. >>> >>> This patch adds a new kernel parameter to allow administrator to >>> choose the paravirt spinlock type to be used. VM administrators can >>> experiment with the different lock types and choose one that can best >>> suit their need, if they want to. Hypervisor developers can also use >>> that to experiment with different lock types so that they can come >>> up with a better algorithm to pick the best lock type. >>> >>> The hypervisor paravirt spinlock code will override this new parameter >>> in determining if pvqspinlock should be used. The parameter, however, >>> will override Xen's xen_nopvspin in term of disabling unfair lock. >> Hmm, I'm not sure we need pvlock_type _and_ xen_nopvspin. What do others >> think? > I don't think we need xen_nopvspin, but I don't want to remove that > without agreement from the community. I also don't think xen_nopvspin will be needed after pvlock_type is introduced. -boris