Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp448206rwb; Fri, 2 Sep 2022 17:41:25 -0700 (PDT) X-Google-Smtp-Source: AA6agR4UaifyUkBUzB4S8n8PC1xHbFnQJCfWTwZl7rgVqQBsxEAQ2P8Sg13yTzsBGzfpILTOnFAR X-Received: by 2002:a17:907:2d1e:b0:73e:7c1f:b47d with SMTP id gs30-20020a1709072d1e00b0073e7c1fb47dmr24348801ejc.681.1662165685283; Fri, 02 Sep 2022 17:41:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662165685; cv=none; d=google.com; s=arc-20160816; b=ccfLTxRGObrSLTMN69FMQ+V0qeikgaL6gLbSuKj6onYkmg543E9NeKYAUuTRXnorGA p0FsyODgjR4sjmoI1+WUqcJfpO7droXx0qjeMOJOCcv41a8walCrY1wu4liebaSE703u erHsG9r7ayDIGD3D4x5mYFKSCTC51ympJ3XIbbv9+AyqXgML4U7SGaiLyzsogbImb9wV qsC7H5vn9ry40Lu4VMYkRRxHgEr3VrRXl/XgWuYAO4pb4AmjmbTckg83koqfsaaFnUrP QBYwKIDbeuM8YJRQnUbyF+zJwTgJ47tv1rIU+pH5Jefrb6n9oZiCAqTJKaSe+zacFkcO Hgxw== 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=rrxOj6R3JsP7X4wJ2mvKJ8fJICeKlQtKiWhKFMrI/6A=; b=tRO3PTCP2fg+cSm3fG3S84xBZ+GGkoXRxLI40nBWgYbq57l+cqmP7LVdB8XEmRQ8Y1 ZjweZtxEUUiLD1deilugZFCXvVUQWNtorpbPxKjlssF7+J9U/8gZDLJ76QMToZBzSTaw TnyzVDK3E+RCYNP4JVNex/Z6xf0QsX9/kV7bN2zDhTQBGOqb2SQGg0Wq6/GJ0PQS3sGY aUzWqgyN+D8AuFfXnYjazYGHUpuFxdj079qRWhUUzXSAjQpWAOHwWvZvq3sgxmzI4QpB 0vY2E28uMHzCwRuMW4zcul5hWV0pkf1378eAszQobAbcU1ARDoCghNv5CfFIwpnAT1fM Z5xw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=NBi9qTeO; 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 Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ji1-20020a170907980100b0073d9ea386d4si3003284ejc.983.2022.09.02.17.40.53; Fri, 02 Sep 2022 17:41:25 -0700 (PDT) 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=NBi9qTeO; 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 S231812AbiICAYQ (ORCPT + 99 others); Fri, 2 Sep 2022 20:24:16 -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-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 Content-Type: text/plain; charset="UTF-8" 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,T_SCC_BODY_TEXT_LINE,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 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==0. KVM still needs the mask=0 check as a non-zero LDR can yield mask==0 depending on the mode, 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; ldr = kvm_lapic_get_reg(apic, APIC_LDR); + if (!ldr) + continue; if (apic_x2apic_mode(apic)) { new->mode |= KVM_APIC_MODE_X2APIC; - } else if (ldr) { + } else { ldr = GET_APIC_LOGICAL_ID(ldr); if (kvm_lapic_get_reg(apic, APIC_DFR) == APIC_DFR_FLAT) new->mode |= KVM_APIC_MODE_XAPIC_FLAT; -- 2.37.2.789.g6183377224-goog