Received: by 2002:a25:6193:0:0:0:0:0 with SMTP id v141csp1248853ybb; Wed, 25 Mar 2020 19:21:10 -0700 (PDT) X-Google-Smtp-Source: ADFU+vsFkLBh4UqRd54GZjlFopeAA8ecRpiF8moDeW8kNVwTGLgFLOz74EtvsKyYGN/FP8XlKQ6s X-Received: by 2002:aca:a98a:: with SMTP id s132mr380700oie.75.1585189270728; Wed, 25 Mar 2020 19:21:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1585189270; cv=none; d=google.com; s=arc-20160816; b=Uy0QA2+SnB3eiU89mfkTPJEVMkxzTgNQStiw/wd2gntVTHJo1lWquZ88ko1ds5aTV5 p2MDKcQXzuSvO+CkkG3+UDtGO8OtelElLl/q0FDfY/T9AbotrDonQT8znyer4d2kOs1B qLlt29GDFK9Tue3HBmYeb6YSkfDM4u/4vfuTBj30W6IXEy1bXisvuE9oWQ9H9Dacj1sM 0tVIbzghEfBYU/FpU8txbXvStP00d+R3lpw0HG6B4K6nP19QfjOCu3gyAsfV23cQAq8n nj6vmomWch0jf6odrFUk6xv7qO5OKKdfvo2DYwg7g7JxufUXxndTRBjxZrYmc6PbDQUb QLZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:dkim-signature; bh=chlzOeSTKjpX1u/O2+BRSZO0t8ii9bW0UyyBajq5hnM=; b=MZ2r0PLepr019Odf3aRdFNWZcaQxD34edaX//PfYQITNfnCnlOJgJjQpybDcLYeB0L P+1CeQKod1P0UNtjG8fQ80KUklSMS4b3nR5I6Codpta0EzXz5E3vlPrIuY6kL2fSRVV3 M1QfKCmilTv1Qlfb5SrC9fdYnF9BZc8bj+JBE4eLV+fdB6qxMWWP7pZVDOwfgTULp9+m WNAz2lN0MRa3mqySsQaT4iwDXxS2feU8Ckyuq8UdrS+ikbAR3T4vCvcPEmFYSNKr8SPY skrSCyTB8MO65hr7FjJuB7+KpVa9chQWLl6YOeq8JoBI8Sa6UJUCx9XRTv0c5Q4MR/3z xC/g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=m5twDoTV; 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 p187si344796oop.28.2020.03.25.19.20.58; Wed, 25 Mar 2020 19:21:10 -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=m5twDoTV; 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 S1727763AbgCZCUU (ORCPT + 99 others); Wed, 25 Mar 2020 22:20:20 -0400 Received: from mail-pj1-f68.google.com ([209.85.216.68]:39883 "EHLO mail-pj1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727736AbgCZCUU (ORCPT ); Wed, 25 Mar 2020 22:20:20 -0400 Received: by mail-pj1-f68.google.com with SMTP id z3so1288198pjr.4; Wed, 25 Mar 2020 19:20:19 -0700 (PDT) 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; bh=chlzOeSTKjpX1u/O2+BRSZO0t8ii9bW0UyyBajq5hnM=; b=m5twDoTV9KA/7pPKfQZO9JyQ1ZRYeD+yBTFfg5G2shlnHvj9NoFgm/QP+Bdq1gC59b ypj9t1t6FOTMhptJj+kju/leMjjOnNR3hvfKJMKXYRXJ7VsrVTFDWxkt+SQh/2+4gSOY MD6ZwBO9T3CJidsFAYLSnE9aa9rvG1vVrAhkHYkmLYHQGPbF/5G+eobWXAHfM9olMAXN iUqp7FiAYL5Rjn3Hlx97mT53n73zy8k7ut8hyq8l7E5KjOU6NwOwICP6MR/Bwx4CoDC2 Ko0Pc75nknD0eV8Haz20LWhLVSQpf8jXjC+SpnumFXXOUAB3M2SdQ3qLgxf7OyrNcEQ4 SM3A== 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; bh=chlzOeSTKjpX1u/O2+BRSZO0t8ii9bW0UyyBajq5hnM=; b=I2Pf2BjwBB03rSQmbVGgC0Pu+q+6CmooTsf5v9D39Sq8x2ktEgG2bskU9MBgsqtdMI TR/vGmbnoaUbKt3sFknloYpfV9O8N8rSRinAku0QNNuu9T0t5TTMDdoAB6g6EYHqB8Kd vu3hfFW3WvaipRCpJBNZZXhIBMXHmHD2kBfKdBbEBTGWVrwqkl5FJQN/iWIMSUuajg5M J4flntxh8MPZaM1ffQ5yAqsn5yNkkv+MD7tnNUB15C/8zinUaOY4kB+GapVLH5Il1D6S ffsFSVLuiKrePUhpKbOdHKCbobKZEi3lfkOJTB4XvPovNuszKUG9PsGNCP1SmKpf21yp cC2w== X-Gm-Message-State: ANhLgQ0aqWIkL9lOnbvUQonTfkkRqk0A41alvsjgydHSgtccz+LFGHyf 5CaZVBWMH/OZs7UDO4kZjNV7wEQY X-Received: by 2002:a17:902:d203:: with SMTP id t3mr5912082ply.291.1585189218704; Wed, 25 Mar 2020 19:20:18 -0700 (PDT) Received: from localhost.localdomain ([103.7.29.6]) by smtp.googlemail.com with ESMTPSA id mq18sm452975pjb.6.2020.03.25.19.20.16 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 25 Mar 2020 19:20:18 -0700 (PDT) From: Wanpeng Li X-Google-Original-From: Wanpeng Li To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: Paolo Bonzini , Sean Christopherson , Vitaly Kuznetsov , Wanpeng Li , Jim Mattson , Joerg Roedel Subject: [PATCH 2/3] KVM: X86: Narrow down the IPI fastpath to single target IPI Date: Thu, 26 Mar 2020 10:20:01 +0800 Message-Id: <1585189202-1708-3-git-send-email-wanpengli@tencent.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1585189202-1708-1-git-send-email-wanpengli@tencent.com> References: <1585189202-1708-1-git-send-email-wanpengli@tencent.com> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Wanpeng Li The original single target IPI fastpath patch forgot to filter the ICR destination shorthand field. Multicast IPI is not suitable for this feature since wakeup the multiple sleeping vCPUs will extend the interrupt disabled time, it especially worse in the over-subscribe and VM has a little bit more vCPUs scenario. Let's narrow it down to single target IPI. Two VMs, each is 76 vCPUs, one running 'ebizzy -M', the other running cyclictest on all vCPUs, w/ this patch, the avg score of cyclictest can improve more than 5%. (pv tlb, pv ipi, pv sched yield are disabled during testing to avoid the disturb). Signed-off-by: Wanpeng Li --- arch/x86/kvm/x86.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c index 9232b15..50ef1c5 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -1554,7 +1554,10 @@ EXPORT_SYMBOL_GPL(kvm_emulate_wrmsr); */ static int handle_fastpath_set_x2apic_icr_irqoff(struct kvm_vcpu *vcpu, u64 data) { - if (lapic_in_kernel(vcpu) && apic_x2apic_mode(vcpu->arch.apic) && + if (!lapic_in_kernel(vcpu) || !apic_x2apic_mode(vcpu->arch.apic)) + return 1; + + if (((data & APIC_SHORT_MASK) == APIC_DEST_NOSHORT) && ((data & APIC_DEST_MASK) == APIC_DEST_PHYSICAL) && ((data & APIC_MODE_MASK) == APIC_DM_FIXED)) { -- 2.7.4