Received: by 10.223.185.116 with SMTP id b49csp2873582wrg; Mon, 12 Feb 2018 17:06:55 -0800 (PST) X-Google-Smtp-Source: AH8x227Cyu0SNCfD2zVvOHJYHpaa67zNTLhbPvsTb0w7w04HZ8cgey2Ed25fdLHuaOdCzZro5B4+ X-Received: by 2002:a17:902:6a81:: with SMTP id n1-v6mr712225plk.11.1518484015848; Mon, 12 Feb 2018 17:06:55 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1518484015; cv=none; d=google.com; s=arc-20160816; b=HI3aX5tkXhfMOrvKlma5hYjcu2makm3tJ5ace72YS1JDX3ZnMyeoTZH+AmPJwk/laW oWBH8w7va9dRi94wBF2GYbzom1E0/2s+MLvIlXaedeOQPgzf/oPyCMN8bSR2/eeDckd1 KBGmN9B+QDYAPkU5ZgBSXPSnjA53DuWekilq6jppROH/72VSYWKiapNYo9Qg1SnQVFrM npRVZ4XzRWYWGo7NYvKCRivN5/JP+660mif5lWXKSv84FU4NPgQK7QDWvvbaSexOljxn h+GCLOiuBPt1NM7FFTtSl/yjiW//Dyz68yWX9keTRqhsvemzz2T3q3SneheumZHkZ2F7 J/SQ== 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=n1ayQ0jiCj6HzGDj3QlRhd7zZXtCBxW0SxG4RxM4IGo=; b=JfHiLt2bKs6B47MCaluRyDvgpuW415YCcPIwt60QGp7WnFtMGSZ2pSeY/h1lAUhLHQ UCoki1V6De1qn5t50DFIqBkgIb806A155z6o72M0lzo6Ap8FfjAfj4Ol9gByBbNR1FgL 2NE7LobAQ6pKtoWSao6WmYs8WIidBdYK4jwpAauco+PygXBjNQTcV4LL/R+SCtUgJPux 0eY7RI4cCufk5R5DxkIYAJWa38rC52c0XItQGbqrwD5wSsnplHu4MvLrs/m31/49/sgO Eqn8QBq1YGBDh6ZcS4OHuXzhe2XNjnnn4Yu4vFFd43T1R4dGtpU8aM5qAjqwOKnpciI5 nnnA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=KPiufV5u; 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 i8si496278pgf.196.2018.02.12.17.06.41; Mon, 12 Feb 2018 17:06:55 -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=KPiufV5u; 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 S933176AbeBMBF5 (ORCPT + 99 others); Mon, 12 Feb 2018 20:05:57 -0500 Received: from mail-pg0-f67.google.com ([74.125.83.67]:41914 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933093AbeBMBFy (ORCPT ); Mon, 12 Feb 2018 20:05:54 -0500 Received: by mail-pg0-f67.google.com with SMTP id t4so7661039pgp.8; Mon, 12 Feb 2018 17:05:53 -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=n1ayQ0jiCj6HzGDj3QlRhd7zZXtCBxW0SxG4RxM4IGo=; b=KPiufV5uIuvEpN4NONVKsLT+FT/Ag3DN5KJ8CCQBgOhpeQDafuAsuweEbNJulXuMS1 HgDoJ0q+hfD1RhojnOVNqDGgSBFzldRISdXrHA7Lw+xi0jBOTF3HUA+yUjpb0hT182Th Rf+ydtoJ01jT/hnB89ppKIJU/32acibhIBZH0/0yj+zIAsg5Pg5jQ2zQRILz8HAp5JgC R1N4HKrBJ9iNcUQiLcaJCJeqF64Wy0oSnSWacoJMrSkADqgYfQP8aUbzOTReGPwkHgDY F0Do73RSU1ACcUJj6fHAEnc4mTpHPUlhVDT5QjeAZZRyXjqlVkvR2GirGWzvhmdVAjU9 e/dg== 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=n1ayQ0jiCj6HzGDj3QlRhd7zZXtCBxW0SxG4RxM4IGo=; b=Kpb6dMxaDknwwzhPnVtM83/iia8F4ySCV7dfkk0lG4Wkv/D+TDiZblGDkPgJno1Ot6 Bx95Ln6h0TJFQOFyfyBFBoZXD91Ni9dnlUf3eDnVVL14Mh+7wwxcQIBDCOGzjhnRkNNO ZE9fFJgGmmXomzjO4JWgzcs8Ae1UnD7j6zU/C0kRB26sEDAjvOZBgMcO/Fava/wVgey7 DG2xOeiZ3TmG0sceLTq6Dv6aTghd/4TfgaiLw45ns/AESTWOJayCUF6dzn2AiPSDpZxh vMCo4YjIx5ps/ePHrEYkjSA3VFSK6TxswPN9U9SKxkld69Rh0guh8WTzcDWdcUWi6zxJ NDRA== X-Gm-Message-State: APf1xPBgpmQT7+F/tN3zMt3jnFUokkxjKhWnrDAomDHQHKAnbkItki8S 9uMFJ0LnH6S87WbiRybEy9EtQg== X-Received: by 10.98.29.137 with SMTP id d131mr105569pfd.51.1518483953435; Mon, 12 Feb 2018 17:05:53 -0800 (PST) Received: from localhost.localdomain ([203.205.141.123]) by smtp.googlemail.com with ESMTPSA id p4sm24500416pgn.81.2018.02.12.17.05.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 12 Feb 2018 17:05:52 -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 3/3] KVM: X86: Don't use PV TLB flush with dedicated vCPUs and steal time disabled Date: Tue, 13 Feb 2018 09:05:42 +0800 Message-Id: <1518483942-14741-4-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 vCPUs are very unlikely to get preempted when they are the only task running on a CPU. PV TLB flush is slower that the native flush in that case. In addition, avoid traversing all the cpus for pv tlb flush when steal time is disabled since pv tlb flush depends on the field in steal time for shared data. Cc: Paolo Bonzini Cc: Radim Krčmář Cc: Eduardo Habkost Signed-off-by: Wanpeng Li --- arch/x86/kernel/kvm.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c index c5566d9..285822f 100644 --- a/arch/x86/kernel/kvm.c +++ b/arch/x86/kernel/kvm.c @@ -545,7 +545,9 @@ static void __init kvm_guest_init(void) pv_time_ops.steal_clock = kvm_steal_clock; } - if (kvm_para_has_feature(KVM_FEATURE_PV_TLB_FLUSH)) + if (kvm_para_has_feature(KVM_FEATURE_PV_TLB_FLUSH) && + !kvm_para_has_feature(KVM_HINTS_DEDICATED) && + !kvm_para_has_feature(KVM_FEATURE_STEAL_TIME)) pv_mmu_ops.flush_tlb_others = kvm_flush_tlb_others; if (kvm_para_has_feature(KVM_FEATURE_PV_EOI)) @@ -638,7 +640,9 @@ static __init int kvm_setup_pv_tlb_flush(void) { int cpu; - if (kvm_para_has_feature(KVM_FEATURE_PV_TLB_FLUSH)) { + if (kvm_para_has_feature(KVM_FEATURE_PV_TLB_FLUSH) && + !kvm_para_has_feature(KVM_HINTS_DEDICATED) && + !kvm_para_has_feature(KVM_FEATURE_STEAL_TIME)) { for_each_possible_cpu(cpu) { zalloc_cpumask_var_node(per_cpu_ptr(&__pv_tlb_mask, cpu), GFP_KERNEL, cpu_to_node(cpu)); -- 2.7.4