From nobody Mon Apr 6 20:11:03 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 56CE0C38145 for ; Sat, 3 Sep 2022 00:24:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231819AbiICAYS (ORCPT ); Fri, 2 Sep 2022 20:24:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53834 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231446AbiICAX3 (ORCPT ); Fri, 2 Sep 2022 20:23:29 -0400 Received: from mail-pg1-x549.google.com (mail-pg1-x549.google.com [IPv6:2607:f8b0:4864:20::549]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 57DA7F72CB for ; Fri, 2 Sep 2022 17:23:25 -0700 (PDT) Received: by mail-pg1-x549.google.com with SMTP id g63-20020a636b42000000b004305794e112so1883970pgc.20 for ; Fri, 02 Sep 2022 17:23:25 -0700 (PDT) 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; bh=rrxOj6R3JsP7X4wJ2mvKJ8fJICeKlQtKiWhKFMrI/6A=; b=NBi9qTeOVZwGZ2FRXHHFz8I1zP6pGuyNlhLOF624Zr12agQ9NWuXfFJij00PH/7VVj 1h6YB+Rez+4fdqYZhPmUEiz0HYfEUOgNFUiiq7ZdodUOzlCDYJKhShfmNGxCgsDeCgA9 tScO/gj2x9FsBgLZI/X1cuWxXWneOffco610sof+4hKLLG9dxyNs8ZaWIm5HEEDqGZ1V VG2ik8ozpsdYJ6CUZfhpPqEYCA0jgtW8hNx+HwYVCFKiKL6FBosXy9yZ5kjY5MU6+mC9 pbgnE1U68KC3L4+8V1TvP9vPuD+BT730kswD2IEVHR1HS6AI9IcD3LWWgsXOUq70LLZZ PPRQ== 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; bh=rrxOj6R3JsP7X4wJ2mvKJ8fJICeKlQtKiWhKFMrI/6A=; b=RWwqOxl3W3K0BzDRqyVCbcaX05cvDsamQvQKOWGf1FuSPfA51wdJUWvQ7SlVJRfcLo Dp6ouBxxERUOknZZajFfD8ScX/hyVX0gFlfPgVcIkXJ4R/jI6ydwsVulM2gK4Dwl/8H3 S5WGG0lO3VEj7Qwsvpm5PMCtcvMJcd4ayww1IzEMqd2qQHjEgmno19LnNYcr92WIuZkU MQ1TOBzCN+s5A9MV6d4fJNzhQg4PodH7k0Ek04A05IHzL081Z1Xqm0we/6DQLvMfq5S3 cPTjIb6753UMI9xUn7XnY5Gt8hoc5rzzjBhN93JBCu9rJKdP5yLmofKdrV55v9gEkKeL echA== X-Gm-Message-State: ACgBeo32K0bb5PAfsj5JucC8ifLIAy3AzG7L3y1u2mvmLgFF/lZrBK7C qtUJpwXVSsoVWnQUw7PdTFGb+H+/uV0= X-Google-Smtp-Source: AA6agR7p3xJPJyvc0VRdWacDfZgNOR5e2m+iY8o4EhTdk4RsPO6f24uT0PUztUqNwwZPfym5fpn++e/VXkk= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a05:6a00:10c7:b0:53b:5eb3:4648 with SMTP id d7-20020a056a0010c700b0053b5eb34648mr3677753pfu.67.1662164604937; Fri, 02 Sep 2022 17:23:24 -0700 (PDT) Reply-To: Sean Christopherson Date: Sat, 3 Sep 2022 00:22:46 +0000 In-Reply-To: <20220903002254.2411750-1-seanjc@google.com> Mime-Version: 1.0 References: <20220903002254.2411750-1-seanjc@google.com> X-Mailer: git-send-email 2.37.2.789.g6183377224-goog Message-ID: <20220903002254.2411750-16-seanjc@google.com> Subject: [PATCH v2 15/23] KVM: x86: Explicitly skip adding vCPU to optimized logical map if LDR==0 From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Suravee Suthikulpanit , Maxim Levitsky , Li RongQing Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Explicitly skip adding a vCPU to the optimized map of logical IDs if the the vCPU's LDR is '0', i.e. if the vCPU will never response to logical mode interrupts. KVM already skips the vCPU in this case, but relies on kvm_apic_map_get_logical_dest() to generate mask=3D=3D0. KVM still needs t= he mask=3D0 check as a non-zero LDR can yield mask=3D=3D0 depending on the mod= e, but explicitly handling the LDR will make it simpler to clean up the logical mode tracking in the future. No functional change intended. Signed-off-by: Sean Christopherson --- arch/x86/kvm/lapic.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c index 4c5f49c4d4f1..80528d86f010 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -318,10 +318,12 @@ void kvm_recalculate_apic_map(struct kvm *kvm) continue; =20 ldr =3D kvm_lapic_get_reg(apic, APIC_LDR); + if (!ldr) + continue; =20 if (apic_x2apic_mode(apic)) { new->mode |=3D KVM_APIC_MODE_X2APIC; - } else if (ldr) { + } else { ldr =3D GET_APIC_LOGICAL_ID(ldr); if (kvm_lapic_get_reg(apic, APIC_DFR) =3D=3D APIC_DFR_FLAT) new->mode |=3D KVM_APIC_MODE_XAPIC_FLAT; --=20 2.37.2.789.g6183377224-goog