Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp5359532imm; Sun, 22 Jul 2018 20:33:06 -0700 (PDT) X-Google-Smtp-Source: AAOMgpeoOl5AEGqhAj5VuoLO28cuQ/ZGcoJ8AOlSh5VUvFuLDIj/8IlVygytNAyKFy5hag+LV1p7 X-Received: by 2002:a62:6f87:: with SMTP id k129-v6mr11590336pfc.26.1532316786068; Sun, 22 Jul 2018 20:33:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532316786; cv=none; d=google.com; s=arc-20160816; b=k6SXgtlnbH/3aXHMMCEhy06ZRYMuNCM1Erc9Sv1O265dHYuEc9oOFvsH9kkllXVdue LQhbWjx1jhpXsRHzCsfkm5lfas89vYWumgx126mbZh5+C5jOJdWs5iGvd/HqmkP+U1Ma DpOK+3kEkhPh07AsMofihXOxKHrVzEinhD5jBzl9C+LfnPbkTFRx7rT0uQT3xahwyECm LwwCqPHnM1vVNTxNgaCCFuYCQF36wEnT6BueCl20e9IHbq7QuSjqfby5ggEUIM6Z6dlE f4HE9a0P2IBq5Eg24DEcTGZgMmwGFs5rrIyDoCzx8DGYB65HPXt5qNt6wGoIGCU1EIfu CokQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature :arc-authentication-results; bh=BhWUm2eQO6SABFd0ZireSHPv8/Gwgjiq4jH1RO3tI3k=; b=Uzz9awAwkkQGNvvemSlO7Lw9XCWUp0N5x3yfDkqj3wxHNc8LRCi5bb4v52aiudveZN BKgXpQWFfZ1YqmtbU7f3YkDPd3fpyr2i3ngG1qHaFkdXJo732j3hIcPAZXSy6xX0Xt+N TjNfdcqCURVw80Msdy8jxR+AtL0XDsdu+JHimZIzT6CGAQOfndahnT2ATvL88+NmL55H 0JT0eDAr/owZmlntO63sYMIk6wvLTOAgB6VaFPzOQ3ykjL69Ynfr3QZPXsMnRPEMAkIo EQEsZVpxEiAeMg+2Em3M6A+0crBh87oQWRg2yKU9Rhbvxvl0lx790g5LnmESIFwW+1OJ N+eg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Vw3CUwfi; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id o20-v6si7657866pgh.319.2018.07.22.20.32.51; Sun, 22 Jul 2018 20:33:06 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=Vw3CUwfi; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728293AbeGWEa0 (ORCPT + 99 others); Mon, 23 Jul 2018 00:30:26 -0400 Received: from mail-oi0-f66.google.com ([209.85.218.66]:39203 "EHLO mail-oi0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726807AbeGWEaZ (ORCPT ); Mon, 23 Jul 2018 00:30:25 -0400 Received: by mail-oi0-f66.google.com with SMTP id d189-v6so30784639oib.6 for ; Sun, 22 Jul 2018 20:31:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=BhWUm2eQO6SABFd0ZireSHPv8/Gwgjiq4jH1RO3tI3k=; b=Vw3CUwfipUrURKs0WftvA0Gc0C68HyYQBAmlmGiJ/J1R/OHmnLMCO9yJPQmSFplR72 HiQGLQ8iC0l4dkmzFu6ApHwCE1/f4AL1d6W5MsrGKU//u7wvwtvnTjdKF7Qht+uPFAXQ 2mKjIaLvrJ4zdOwJ3735QwCKLIjzVlWr8X3YUvWzDrf/xaXVgIcEeT1cTXsP5pvtHKKz 6kPN5uqCY3S/toYkrGu/VOG9Qz5yxzDv2b7xSFyRSMYoghStBwdJTCYha08UslbKdJ9p jEZsgLoR9cVztYq/lBtxe8Pjrti5qJZab7+Mv+mXIewoNMd9kePkqZYkY/mEMPWzFEMh bh2w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=BhWUm2eQO6SABFd0ZireSHPv8/Gwgjiq4jH1RO3tI3k=; b=VVbirsJNSTaIFkb2+2KXk1tkCnkJEEK3/ozo6h1DrwatVOI3qoAy6fkNkgSRMMeHlC fMHJPvRYRAeVlQ2VHj9LG6Oe5pD9egwA4ULFqLVQLcsWOBMyCZGQm6giguyyfEanocFP w3KOJ8DVCUeaSIHa/W28hMe6UmZYBbd+kajNDxxbfeCid1cLHE2P1y1feDm6BCF8G8sw R/cUegWp0wbiH5PngFUlz/d6nBKHNu9frgxPWhmpAsMmQdSM06Gdu9Fy7Bo0kXpNxyGK dkzIeTpCaZbD8WSwo/Q4rmkK+l47rUDrxAbSDMHGoAhqmJ/qHAmgwOwCFeJDzaTUYaUY /bFg== X-Gm-Message-State: AOUpUlFYJagsVfiy4l6ln0k5gCT9fkMKs84rjbfoWa6shimlJnTmAAfe hagK+KWEasWjNYUa9RoXhizAxfdBSn2qIewHnFc= X-Received: by 2002:aca:2808:: with SMTP id 8-v6mr1105638oix.7.1532316681772; Sun, 22 Jul 2018 20:31:21 -0700 (PDT) MIME-Version: 1.0 References: <1532036397-19449-1-git-send-email-longman@redhat.com> <20180719215456.5ho3udhfoqlkh75a@linux-r8p5> <00e98205-606a-a121-36c2-dedaeae1d0bb@redhat.com> In-Reply-To: <00e98205-606a-a121-36c2-dedaeae1d0bb@redhat.com> From: Wanpeng Li Date: Mon, 23 Jul 2018 11:31:13 +0800 Message-ID: Subject: Re: [PATCH v2] xen/spinlock: Don't use pvqspinlock if only 1 vCPU To: Waiman Long , Paolo Bonzini , Radim Krcmar Cc: Davidlohr Bueso , Boris Ostrovsky , Juergen Gross , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" , "the arch/x86 maintainers" , xen-devel , LKML , Konrad Rzeszutek Wilk Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, 20 Jul 2018 at 06:03, Waiman Long wrote: > > On 07/19/2018 05:54 PM, Davidlohr Bueso wrote: > > On Thu, 19 Jul 2018, Waiman Long wrote: > > > >> On a VM with only 1 vCPU, the locking fast paths will always be > >> successful. In this case, there is no need to use the the PV qspinlock > >> code which has higher overhead on the unlock side than the native > >> qspinlock code. > >> > >> The xen_pvspin veriable is also turned off in this 1 vCPU case to > >> eliminate unneeded pvqspinlock initialization in xen_init_lock_cpu() > >> which is run after xen_init_spinlocks(). > > > > Wouldn't kvm also want this? > > > > diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c > > index a37bda38d205..95aceb692010 100644 > > --- a/arch/x86/kernel/kvm.c > > +++ b/arch/x86/kernel/kvm.c > > @@ -457,7 +457,8 @@ static void __init sev_map_percpu_data(void) > > static void __init kvm_smp_prepare_cpus(unsigned int max_cpus) > > { > > native_smp_prepare_cpus(max_cpus); > > - if (kvm_para_has_hint(KVM_HINTS_REALTIME)) > > + if (num_possible_cpus() == 1 || > > + kvm_para_has_hint(KVM_HINTS_REALTIME)) > > static_branch_disable(&virt_spin_lock_key); > > } > > That doesn't really matter as the slowpath will never get executed in > the 1 vCPU case. So this is not needed in kvm tree? https://git.kernel.org/pub/scm/virt/kvm/kvm.git/commit/?h=queue&id=3a792199004ec335346cc607d62600a399a7ee02 Regards, Wanpeng Li