Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp104185rwb; Fri, 30 Sep 2022 18:17:34 -0700 (PDT) X-Google-Smtp-Source: AMsMyM6ZdLigfqoNGWV0ghakTMbkcS09yUF8kG3h4Vw2aBVCmXix1q+73YzvScJNZlLO9ZkzsH+u X-Received: by 2002:a17:906:dac9:b0:780:ab6f:591f with SMTP id xi9-20020a170906dac900b00780ab6f591fmr8289488ejb.77.1664587054523; Fri, 30 Sep 2022 18:17:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664587054; cv=none; d=google.com; s=arc-20160816; b=V1DfOnyIyCLbPrRNPS5UjO5f8140rEwTv1rHwbkWkQ/F7vv4/XrpFZZsjaBHbjrP+M lP0ivmZpqNRhzP/IkttgT1I2jC0r8SWDZRcQNVYf2VRrWVLFqvhExW9lFHpfWl5DASJd aMGlZtssPYa9PK7Cra0lMq1N+2nxHvIXU/nn3I/eimjhtSav58u72/u94E8kyGE8Rr/7 mL3QffcJpvBqlH8t/1l5czKBeEJYcIZ8IAJNLMZtcF8lrn61deB7kKYlv5sPoVI9d3wk htmydlMWQpnnQrqJ4n1Cy5kobDarPi3baJHDizSV7ECq4L26UUqRyN6T7ZI3ud2GbJq2 txCw== 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=uSNLoOQS29RMH65csyjC62wfSsv+FVU9ZImwILmmR5M=; b=Ccaku1tmc/F3mVvNqJ/bGqG/jlp3GgrWqq755RI1MdS9hAgMOUnT23Xn6vUXlGCzfP aIs+tVdpUX1OBW7X/B+jQY9fMlsAGMR3zbkReEAMnuXfYC0KnWH08xR41mogq3+ChK0A kJaJdWCscGP39KydPOAnj5fV9nyEUyW8GZyIampXab3DeuIzKBnIZPsYUXo254aOnwyC +I3fSUium3kFEClLzTT09v7MEjifL7l0eZMb0tIF7WAU3ADa7IH+6V/lS9eQXe14nqB7 veM2p7swXX0mFkVpL6vQKfLOv34KudZGMv+JHvt84YJdaccpqro8A5AW/X6kY0RKLW21 vcLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=cu5cnfvl; 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 qb3-20020a1709077e8300b0078330773290si3153358ejc.396.2022.09.30.18.17.09; Fri, 30 Sep 2022 18:17:34 -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=cu5cnfvl; 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 S232955AbiJABCU (ORCPT + 99 others); Fri, 30 Sep 2022 21:02:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40334 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232954AbiJABB3 (ORCPT ); Fri, 30 Sep 2022 21:01:29 -0400 Received: from mail-pl1-x649.google.com (mail-pl1-x649.google.com [IPv6:2607:f8b0:4864:20::649]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 70A42B40C5 for ; Fri, 30 Sep 2022 18:00:04 -0700 (PDT) Received: by mail-pl1-x649.google.com with SMTP id s16-20020a170902ea1000b00176cf52a348so4224545plg.3 for ; Fri, 30 Sep 2022 18:00:04 -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=uSNLoOQS29RMH65csyjC62wfSsv+FVU9ZImwILmmR5M=; b=cu5cnfvlhzILzZOTu90hhEus/JcWHKk0Ix+eguBuS8jVRomLlYtEBLLAIExsCXHVev g6ruv5FIBCh63KA5C7qYvzCkgmXv2U425RFzDDfjzHrlpv/ut3aSqLJ02sVsS/9G9UoZ lJgNpEzVPZINtboSHrKUIpfnM2LBuTVEekL/n/jFQjTQUcvhsbKx4xl8fV+SkP9oFLTE fjYjfkNn/+6bwf4SpzKgEjpA+D8aEf3ADt1yH2NQrIE4amB2Hyq7FAY5nU6eV3jPtans 1i0rhHatQHKOmRNzLhHQrwh1Vpcziwky8q+EK7eG9nxMkxSwSSyGWHNN4qDzMRWc1z1B sJuQ== 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=uSNLoOQS29RMH65csyjC62wfSsv+FVU9ZImwILmmR5M=; b=jp8lhEnUe5UyF6OXHqair0gWYrIq+KUKJhIyVD2Bl+PE0AQEn5KKVPXb/hU9hTR03S ZOanitRMby2gkksVCwVu3rQOth2TZcaVbzOVwqOyH+E4Un0sSWCjVju6cdIZs1YyuMnU JqBxfE6RtwHZ14ThTHHedZtpZCC1i5j3wVwYTdY3tGuePvtZRLlVgJ+mT087lcEUMnQI labFg17+qB6+39gJ9oD8aY75vPD4hZ7IczUqprwUBeWOd542YFdzxNFRGYDkIbRuuJKV OYX6nw1VtDGM2xIpx273RcVc+/JCNrSLkVKQa+ZbH5HXgSIts01fcPiiuFIU92W6G7DO SbRg== X-Gm-Message-State: ACrzQf1mYikRUcTb4gLbIomSB1mqnZfxL4yt12qvBOVkOr+w+I6iFgRW F3NWAR5opW2AAN5gkq5/C88QC82+4lQ= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a17:902:be03:b0:17b:80c1:78c2 with SMTP id r3-20020a170902be0300b0017b80c178c2mr9683660pls.34.1664585989336; Fri, 30 Sep 2022 17:59:49 -0700 (PDT) Reply-To: Sean Christopherson Date: Sat, 1 Oct 2022 00:59:01 +0000 In-Reply-To: <20221001005915.2041642-1-seanjc@google.com> Mime-Version: 1.0 References: <20221001005915.2041642-1-seanjc@google.com> X-Mailer: git-send-email 2.38.0.rc1.362.ged0d419d3c-goog Message-ID: <20221001005915.2041642-19-seanjc@google.com> Subject: [PATCH v4 18/32] KVM: x86: Explicitly skip optimized logical map setup if vCPU's LDR==0 From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Alejandro Jimenez , 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,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 the optimized map setup if the vCPU's LDR is '0', i.e. if the vCPU will never respond to logical mode interrupts. KVM already skips setup 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 42b61469674d..cef8b202490b 100644 --- a/arch/x86/kvm/lapic.c +++ b/arch/x86/kvm/lapic.c @@ -286,10 +286,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.38.0.rc1.362.ged0d419d3c-goog