Received: by 10.223.185.116 with SMTP id b49csp2874778wrg; Mon, 12 Feb 2018 17:08:08 -0800 (PST) X-Google-Smtp-Source: AH8x226k4NiWlpVSwQ2FKn3iG7kccWBziDXhixrbRjp34RnV14pKTx3fd9n8Wpd7pYNcAL5Lq8sJ X-Received: by 10.98.209.8 with SMTP id z8mr13369981pfg.240.1518484088873; Mon, 12 Feb 2018 17:08:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518484088; cv=none; d=google.com; s=arc-20160816; b=x0nIY0oT1c4KjwIyWAE0mwzAOUu3kokZe0OrCsebZyG1ZIXyNnhaJaG7HEUBcXke1O 2/6TS0sxvKPgLy0jEtCdKvaagHCGYlJ+IkjMdFRPQTK24VXKJ8YnzT5zfSAErIKFN95R Fh0HWij/3mv0Znegy/1GEO5ni20GHweBc7nwEWYf4eB/617FguDeFsys2U3+/lr8To7P s99lrQfahAVTUhGuAOZevceKuooMrwl/C6VMSZsV9vjzqTPA+bAeMMiN1mHujlTxcMEK ZEqYzRTs/EpbZcJ+fBsfeKjwiE8VWpGB288jd44fHjELFYTpgXWbj+iduhxD/2lgWiKC faNg== 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=z/PxuKx5pEXjCpyFqFNbnDQcO4Svx74l/IdY5D5WmQwfpgOwyxv2HUDV9ysErHXeiV lRA099FLMOuEq9hCjryNvcb4vFgA8Mu+a+crwbD6g2Rubua53LghbA0mTi71QPihzfZ1 xFrEVqkbDkHlJL7d4baNBtjnujEBvBZtgD1r33LoU6TLzy9H9C4FjthEfVy42Daz8tGm N0RIb/s0ikVdhJ9d7W8mQrJtjEeral5esaGIMQ8D1nqT2tDVC4IU1WzzEZF9EPM3VIsC BhQdrI0NB6CB5fl8VZsHDTq+uNi4bv9RHh3kLtccfHYGcCHCNQkpOqgJ1jlc5dzB9GiS SGzg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=CBwzkTM4; 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 n10-v6si123820plp.698.2018.02.12.17.07.54; Mon, 12 Feb 2018 17:08:08 -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=CBwzkTM4; 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 S933231AbeBMBGg (ORCPT + 99 others); Mon, 12 Feb 2018 20:06:36 -0500 Received: from mail-pg0-f66.google.com ([74.125.83.66]:38284 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932736AbeBMBFw (ORCPT ); Mon, 12 Feb 2018 20:05:52 -0500 Received: by mail-pg0-f66.google.com with SMTP id l24so2678755pgc.5; Mon, 12 Feb 2018 17:05:52 -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=CBwzkTM4dUhejd3dSCIE2XYm/02s2V2sSOl4kem8wCmiykT3KjlOw54W8gIOesLytt DrDROnQXP/jKmU6wnPyckYVW4BXPw0Du3MPM+gF5YGuEZeKJpOLVOdAlWVyq6RvzNTxL re0L9Fx11cY/559Db2x7h+X6agD7ux68Acidge40z6ngTMIDR5EO2Avim66FGbIfr9oR kHP/NzS0urYSF6mS3IZxcXT+MVN83uSa9YcZ9dSrAJF9HRO6erpVhPu695Qigr4GB/iX 2Zu9YJcMIz3IQeqHCd+aZQAN1jTRmpUWWzbWkE2Pjz1UW5XFZvyQTDkR2dlZXAV6QBmk nV5w== 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=tJ/ZK8RLwcuXUz4hRmsCbNnepHPdDI21tYfVw+efY5i6brUM7Udyn+2b6F2hYsEDvE aS9KK8XrnqllKF0rW3Wrqa4cWHSr9jvdwxQNciAI+eV64OmrbAjXDxUGBc6TpcxipHYZ ifM5XDJQamwGn6HYZ33jTKBFJ25mwESUaO9iAeM1tM2EP8hQHSLlT2+3DJl/L+05Ahwl aJQJ10JJDhggRAisFrpBioA2Ml0qu+hQq7KbkwMwce53UvAF6HWCUAnVIa+ekvtA4gEA nu2b6ZaKW+La2TUdKkRa8KcDst7W/+1a3tE6ytFAUqVx9LWprRcJETyj3A7eF+YpelrH VxaA== X-Gm-Message-State: APf1xPCPp0SVaZdTb1lqiCsJVx67xwymTKLVg+Tm/uWySMtg3zMSu6ik N/NiWYLr+MbiNM/yrTjPXm3fAQ== X-Received: by 10.98.38.134 with SMTP id m128mr11693260pfm.154.1518483951409; Mon, 12 Feb 2018 17:05:51 -0800 (PST) Received: from localhost.localdomain ([203.205.141.123]) by smtp.googlemail.com with ESMTPSA id p4sm24500416pgn.81.2018.02.12.17.05.49 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 12 Feb 2018 17:05:50 -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 v4 2/3] KVM: X86: Choose qspinlock when dedicated vCPUs available Date: Tue, 13 Feb 2018 09:05:41 +0800 Message-Id: <1518483942-14741-3-git-send-email-wanpengli@tencent.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1518483942-14741-1-git-send-email-wanpengli@tencent.com> References: <1518483942-14741-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