From patchwork Fri Jan 6 01:12:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 39877 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:4e01:0:0:0:0:0 with SMTP id p1csp577583wrt; Thu, 5 Jan 2023 17:17:45 -0800 (PST) X-Google-Smtp-Source: AMrXdXtg3HHqlEmJXEydeCbmGfSM4VzwYpbwNWuN2ahjEkTxxkVsofI+1mnuzTMSmITLYGuTm23a X-Received: by 2002:a17:907:a782:b0:7c1:6430:e5d0 with SMTP id vx2-20020a170907a78200b007c16430e5d0mr47313931ejc.4.1672967865593; Thu, 05 Jan 2023 17:17:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1672967865; cv=none; d=google.com; s=arc-20160816; b=N3hAwpVRY/hRTn8EHM449hUZqWFxsI1Gt/T2GkgIO1yZV3BV1x5RQU3PZ8r9hhwbMf kQhoh6U3Fe+nHoTrWe2xHCR5ybL4AcbqVRWmxhhvbmMitc7aDZOCS9VDAxbWHTMWjPqx SfpF9cZWAEkN1pMtbJcZyb9IMbZ7utVL1KigtcmGGNdHf/Xcz+wV1S5Mg/apjwOHNode CiKRWBNLM2yKpp9N/Pa8iJSZpvTowT7AhdaBBWNGLXz+kUvwOzomgzS+cvB8gqYwfhjS KuI6BI8aoCiVJk8nWKpkYGgzHJffIq4h+K+FlzkWx/bGAAjHOJZzdvc/d9IC93wkx+/c pXOw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:reply-to:dkim-signature; bh=QiGveUbKaqMPt6iTfsOvtO6yQmlbHWlXsxHlqUGMl/I=; b=VSpuueglruAjemaIb4poUvP+05EhKrQSDGLjj/QFw48tK2Ooo8GFTrRLOGo6TUfjXZ 7cWsQYxhJngQcv4xeensvb0B53LQq7twKwJRR7nd1Ljv5vbXvsndmwQw6XZIpYdYW8ZY yI0OjY1sH5tSqpE2opkMt6cgJKLBk4j0Ai1aPEL7pyQfjzClFjWwbd1YkA8AE7AcDN+Q 1IOuOaPvPtjeEqckSsJ5Vxisd6GltRGkQ57JyNhKMDnNv5txVCWsXrm2MtbCdqbvRYw7 c5Ld2jpiI4JxwRsdyXwYNUSO2Hrw+J6bcdhJhDsdQ5dFAGMUCK5NxO1zqNTetdZsKVy0 UZAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=IgbrbTl5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i10-20020a170906264a00b007ae63fe980dsi29688663ejc.931.2023.01.05.17.17.21; Thu, 05 Jan 2023 17:17:45 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=IgbrbTl5; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231301AbjAFBQR (ORCPT + 99 others); Thu, 5 Jan 2023 20:16:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41238 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231663AbjAFBPh (ORCPT ); Thu, 5 Jan 2023 20:15:37 -0500 Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E0AEB7816E for ; Thu, 5 Jan 2023 17:14:03 -0800 (PST) Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-4b34cf67fb6so3169297b3.6 for ; Thu, 05 Jan 2023 17:14:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:from:to:cc:subject:date:message-id:reply-to; bh=QiGveUbKaqMPt6iTfsOvtO6yQmlbHWlXsxHlqUGMl/I=; b=IgbrbTl5VVQEWYsKOJIdi6Yh1Rkg0pxnO5FKrfb/4/5Qxejylccur32ccSkChi1BWm uNrufnv52MO1GV4aPWUTlMIVQdCAw64PEWa6M/B6kgKNK6cZuFwD85AckL/9uoZHparz +298w25KwqbNpkDWWG3fvXwVJOprfJez5wLuAtZsf1CEg/vV/I0j2/tIj4s84NJ2x24a 6xUmJHZcg6MlqBKqNcneW//MiQUT5D9tk2KcNx2zZ2UBS+Ekss9Guu2K2rJnWRh8PqYk hsoOAg/4wWltiJSgyf24wg3gGckY2Hk5Dsmn8pePTXlBQhal0Ru6ni9RiKz1Syw4a6zl QdAA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:reply-to:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=QiGveUbKaqMPt6iTfsOvtO6yQmlbHWlXsxHlqUGMl/I=; b=lmM5A0LdrSjA7exHjBKhmgsuSmabrTwQDInbPm73UuLhQwCXeBz+leuNs9sPKp+T6+ IRjdHvWTg2SdTCYXb53khkFep3e/2WKxgq3MYUuRRIucC3yBe0Vd+Ud+EEVJVfyben6Z eDqT65/FU4gyLzdv+SBRxx+rWIQEYDu1eIIxg+vvcasLwsIW+RUoIA4NCzF/kioi4flp 0h0LLbhlEm2L78OyypkkFWTEloJoERysReQ59IMziCWAr8BMdv4L4BJxrC8tYALUQECJ AuGJhOlqvKlhbOyGpKm/yfU678t/rdG+5zVuU+ter88qCp9CGup+7dl7qPEu1ltaYSMt jGyQ== X-Gm-Message-State: AFqh2kpRFE/2gSt8j2NPpAWMscZwuHxKhdbf1q0kHj7ijn4VkMqN5NjR 4eLpFhaEGOokXA0KMYu/wxiv6vCzGKU= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a81:6784:0:b0:460:c029:6c76 with SMTP id b126-20020a816784000000b00460c0296c76mr362480ywc.515.1672967629741; Thu, 05 Jan 2023 17:13:49 -0800 (PST) Reply-To: Sean Christopherson Date: Fri, 6 Jan 2023 01:12:54 +0000 In-Reply-To: <20230106011306.85230-1-seanjc@google.com> Mime-Version: 1.0 References: <20230106011306.85230-1-seanjc@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Message-ID: <20230106011306.85230-22-seanjc@google.com> Subject: [PATCH v5 21/33] KVM: x86: Disable APIC logical map if vCPUs are aliased in logical mode From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Alejandro Jimenez , Maxim Levitsky , Suravee Suthikulpanit , Li RongQing , Greg Edwards X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1754233952823568080?= X-GMAIL-MSGID: =?utf-8?q?1754233952823568080?= Disable the optimized APIC logical map if multiple vCPUs are aliased to the same logical ID. Architecturally, all CPUs whose logical ID matches the MDA are supposed to receive the interrupt; overwriting existing map entries can result in missed IPIs. Fixes: 1e08ec4a130e ("KVM: optimize apic interrupt delivery") Signed-off-by: Sean Christopherson Reviewed-by: Maxim Levitsky --- arch/x86/kvm/lapic.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index dca87bb6dd1a..9c0554bae3b1 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -346,11 +346,12 @@ void kvm_recalculate_apic_map(struct kvm *kvm) if (!mask) continue; - if (!is_power_of_2(mask)) { + ldr = ffs(mask) - 1; + if (!is_power_of_2(mask) || cluster[ldr]) { new->logical_mode = KVM_APIC_MODE_MAP_DISABLED; continue; } - cluster[ffs(mask) - 1] = apic; + cluster[ldr] = apic; } out: old = rcu_dereference_protected(kvm->arch.apic_map,