Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp2173295imm; Thu, 19 Jul 2018 14:41:27 -0700 (PDT) X-Google-Smtp-Source: AAOMgpdTA8DxoSaX765QiqjSIJLzyVsyVoVzmmfQ2n6gKq4V8wlXQNu8Djhmhw52NwdwNh5vGmqm X-Received: by 2002:a17:902:6b0b:: with SMTP id o11-v6mr11952712plk.101.1532036487932; Thu, 19 Jul 2018 14:41:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532036487; cv=none; d=google.com; s=arc-20160816; b=iIdnxXmA8IFE1KyiBZuYTMMupjG5hNICfZTPgf1YO9/7SqIaTbA6G4dsZ+kWGaZmrI sk8AYB3ecOaNSyb9A/SueUQPcYtmzm+eVcOV5tBQvk/tdE/2PL+6RGzcTJnZknpz0ab1 Uwzl81KD/HtyisN7GDTNAyx8tnZE9Nbr/bzS6dnFi8T5C4otPBR4+4uEzv9OCJEGYYZT cmt34j791Vj4mlww+zWsfVWJsW/hiz39+oH5nxKPFIT2OthuPr3B7yyFmbv1zJWKgqFc oUt7NvsmL/MYhTXGmYBtwpVzKjGlFCl+AgkrHFx9bNKMQLc4zOT6WrThy2OrRUROjFVu zVSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=3wgAFipQ8pYdZkklfETGbT7kLKVxI9iZQeGgGRNYkpo=; b=g0lXVCKUzg8E6XSlFB33qQry7QVMmy5Gqe8BXKQmM/nNWhDcBSH8EPJl05+ewfOU2p /cO9x5NeLSnq3WNEuaRLJzCAWknNEMlJLsYoUne8kxMRp0FoSEvG6YvNP/WQ4uJrHBxO o/uG5LUNBZduMQA0CiEV5cmhgoUC/es7LGK6jvfoULSJzT+pcILncAJYBhSiCtQLwgSF pT3tjlTJ4KKxFXBjLmAR9ctimYnkzbhzOtZiCHZj4EKldogeqIWWEbNBsezIWm6ICoz+ x6uslceniQEob7UvCtKdECxGx90/VHc5anLSfXMiVOEJhn67iptMXDmUVJQznp52M+o5 g0wg== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id q30-v6si246090pgk.253.2018.07.19.14.41.00; Thu, 19 Jul 2018 14:41:27 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730534AbeGSWZF (ORCPT + 99 others); Thu, 19 Jul 2018 18:25:05 -0400 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:47986 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727721AbeGSWZE (ORCPT ); Thu, 19 Jul 2018 18:25:04 -0400 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.rdu2.redhat.com [10.11.54.4]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id BBAAA738E9; Thu, 19 Jul 2018 21:40:05 +0000 (UTC) Received: from llong.com (dhcp-17-175.bos.redhat.com [10.18.17.175]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4E02D2026D6B; Thu, 19 Jul 2018 21:40:05 +0000 (UTC) From: Waiman Long To: Boris Ostrovsky , Juergen Gross , Thomas Gleixner , Ingo Molnar , "H. Peter Anvin" Cc: x86@kernel.org, xen-devel@lists.xenproject.org, linux-kernel@vger.kernel.org, Konrad Rzeszutek Wilk , Waiman Long Subject: [PATCH v2] xen/spinlock: Don't use pvqspinlock if only 1 vCPU Date: Thu, 19 Jul 2018 17:39:57 -0400 Message-Id: <1532036397-19449-1-git-send-email-longman@redhat.com> X-Scanned-By: MIMEDefang 2.78 on 10.11.54.4 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Thu, 19 Jul 2018 21:40:05 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Thu, 19 Jul 2018 21:40:05 +0000 (UTC) for IP:'10.11.54.4' DOMAIN:'int-mx04.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'longman@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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(). Signed-off-by: Waiman Long --- arch/x86/xen/spinlock.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c index cd97a62..973f10e 100644 --- a/arch/x86/xen/spinlock.c +++ b/arch/x86/xen/spinlock.c @@ -130,6 +130,10 @@ void xen_uninit_lock_cpu(int cpu) void __init xen_init_spinlocks(void) { + /* Don't need to use pvqspinlock code if there is only 1 vCPU. */ + if (num_possible_cpus() == 1) + xen_pvspin = false; + if (!xen_pvspin) { printk(KERN_DEBUG "xen: PV spinlocks disabled\n"); return; -- 1.8.3.1