Received: by 10.223.185.116 with SMTP id b49csp768054wrg; Sat, 10 Feb 2018 19:32:18 -0800 (PST) X-Google-Smtp-Source: AH8x227/O7fvY8ixSu5VqMiscdykCJ6P0x8wRfjLwikQURz6xFMrDJIYAi3kwVJkLT08NakswyVG X-Received: by 10.99.103.69 with SMTP id b66mr6182310pgc.233.1518319938519; Sat, 10 Feb 2018 19:32:18 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518319938; cv=none; d=google.com; s=arc-20160816; b=C70doqSMfmgWX+oj8JHhUHJIQHm/LosFLNS8fuEkl3jci8XBLS5xNfGbjRuOHuUx54 L+W4WYWgvGYcsdU82TMATkfQ8FQ+GYpdr9G/J0lfXCJn+FrO2RQkctpkrJN6tmhJAX4i w8uNzODDQdwbU9IoNLQSTSLsYCLsuywmyjWErSAZ7WZ2EBtKVVdG8nBM/8dA5tPnKDzS PDpq1w3z5bS3rVRdJe2P4eUnHRAyNLysb6n20frCJxrEJt2CnQ1OPh2MFPGbSGWTEWPk m8SWCnpTxnoadFhK7SJp5P7+SpV2+EaUVy/mLVnrwZPRAqaYO6uKqIRj/Hi6iD6EURyd lbRw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=sRGkP0CkTcjnhqL2wdPsB9Jv8uGNQpXjNdY6TB/CcT0=; b=EVdBwUaXkPRN3V7BojsF4CgKLoUsdHBDNONynFacnyGaMx+5AEst/J5nUn4X8kVij8 5Pnf6/+X5XqC/WJuU4/TP1M0O9HmAMhvpNzn6cDNCTWKuQB6eeeQP25HCifqifoL/aNz YmbHkk73fyX7GzkUpLBqP5oii6paHop7fU/quAgqfujsMZNtvAUV4vgL66ZfC8KUgiui r2XxDKbnKOTaMJQwLyJzTza7NwgGJ1pOo6L77j1eu/us8nl9xQ/n/wtilCjeHgVjiTSb GOCdVFQxX4rSyxUWjSkvmGcc5zRiBk3kCzbxUbXG9vt+NzlApqK+03bpV1n/xIeGOz7H Em9g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=VcpwBOke; 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 r17si2306237pfl.375.2018.02.10.19.32.04; Sat, 10 Feb 2018 19:32:18 -0800 (PST) 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=VcpwBOke; 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 S1752632AbeBKDaa (ORCPT + 99 others); Sat, 10 Feb 2018 22:30:30 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:33797 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752493AbeBKD3z (ORCPT ); Sat, 10 Feb 2018 22:29:55 -0500 Received: by mail-pg0-f68.google.com with SMTP id m19so596806pgn.1; Sat, 10 Feb 2018 19:29:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=sRGkP0CkTcjnhqL2wdPsB9Jv8uGNQpXjNdY6TB/CcT0=; b=VcpwBOkewFysFcam64oZdxjFQZK3op8+kqoWj5pTQ3/8Ha8ysKhtS7ZOHP2uy8hY1m H+sK2mrtRvq6FdTieaDhbrSzx3SmIf9K2ToLEWsO3KKYbc/Rlail0JOD4DlI6UHSoJ37 3T4BkQxDAbC25OjwiGawUa5iCuBqfR9m8FhXmo6EkhU/QnN2SfqJrI15wkiBoddUxoE1 uhQqGVTZ+/+hdxpDgVDhVDV1WBD7HOLXWylacj/JK/8Epzl0Dg8D7lPHKo/9q/sDWfyc eM23ojPHLagMHWRocoInVFLOAtWStM1GEHrUmJOzR4e7/vm17fHjmWBoO/2vQ79s1GG5 3Hzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=sRGkP0CkTcjnhqL2wdPsB9Jv8uGNQpXjNdY6TB/CcT0=; b=OK6pgsEOLKixqkMNfPzpHNoTgIERJrkCXhJ+sDIeMe16KqeqEns030R1hrRVuOW0dd r+Dsslr34BzNmoXRwmJvzRICRXkvOfHFULrzwQi84ARBXl8yeBrACYQM7ByjEo4XxZgC VJFhvFMr8GKyUczMJIsIh9bgU9ycL6Go40siYFT4kqOB52hLv7i1Sglxhk9lG7Qsp5yv Hrvd61GL/vY/5azFsSL2MZZPU/F/FNcet62dPrpp4i2d/pzBGA7tm7QtZplbCNu5xeS8 +/fotxAs5Pu5in6Dbsa5xzcmoVt6L8bYIhR3b7n9bc9behh3ftbViDKM/z4K9gWILa/u FACg== X-Gm-Message-State: APf1xPBQp+uL1QRIHiSu3NlWexrqOWUp/OxkzPCJfuJuDcQYpra3d4AQ 2x9KVNygKyUhgoPwsSc4nrkj8g== X-Received: by 10.99.108.72 with SMTP id h69mr6070875pgc.302.1518319794802; Sat, 10 Feb 2018 19:29:54 -0800 (PST) Received: from localhost.localdomain ([203.205.141.123]) by smtp.googlemail.com with ESMTPSA id a19sm18752504pfh.170.2018.02.10.19.29.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sat, 10 Feb 2018 19:29:54 -0800 (PST) From: Wanpeng Li X-Google-Original-From: Wanpeng Li To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Paolo Bonzini , =?UTF-8?q?Radim=20Kr=C4=8Dm=C3=A1=C5=99?= , Eduardo Habkost Subject: [PATCH v3 2/3] KVM: X86: Choose qspinlock when dedicated vCPUs available Date: Sun, 11 Feb 2018 11:29:45 +0800 Message-Id: <1518319786-1466-3-git-send-email-wanpengli@tencent.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1518319786-1466-1-git-send-email-wanpengli@tencent.com> References: <1518319786-1466-1-git-send-email-wanpengli@tencent.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Wanpeng Li Waiman Long mentioned that: 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 uses a KVM_HINTS_DEDICATED performance hint to allow hypervisor admin to choose the qspinlock to be used when a dedicated vCPU is available. PV_DEDICATED = 1, PV_UNHALT = anything: default is qspinlock PV_DEDICATED = 0, PV_UNHALT = 1: default is Hybrid PV queued/unfair lock PV_DEDICATED = 0, PV_UNHALT = 0: default is tas Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Eduardo Habkost Signed-off-by: Wanpeng Li --- arch/x86/kernel/kvm.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index 77a0723..c5566d9 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c @@ -733,6 +733,11 @@ void __init kvm_spinlock_init(void) if (!kvm_para_has_feature(KVM_FEATURE_PV_UNHALT)) return; + if (kvm_hint_has_feature(KVM_HINTS_DEDICATED)) { + static_branch_disable(&virt_spin_lock_key); + return; + } + __pv_init_lock_hash(); pv_lock_ops.queued_spin_lock_slowpath = __pv_queued_spin_lock_slowpath; pv_lock_ops.queued_spin_unlock = PV_CALLEE_SAVE(__pv_queued_spin_unlock); -- 2.7.4