Received: by 2002:a05:6358:3188:b0:123:57c1:9b43 with SMTP id q8csp1564743rwd; Thu, 1 Jun 2023 18:26:46 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5ZIqLO7MhsOecD8LeSmTmWc6EImigCGqotTfK/gW8mgQL/c7aE9kTjCoJBV6E7YVSpPlGB X-Received: by 2002:a05:6a20:6a25:b0:10c:2349:459d with SMTP id p37-20020a056a206a2500b0010c2349459dmr12926182pzk.11.1685669206336; Thu, 01 Jun 2023 18:26:46 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685669206; cv=none; d=google.com; s=arc-20160816; b=yMQUAm2vfQt3th5SC4icN+tZBu1IrTt4K9dEfiY+fGY8KqDCwb3eVZLgfnrRELtYnA l7PgE2SwyIGXS0XcFJoVKK6rMrZnZVtpfLV5cZ5Q3WPrBJWwIc6eavJdcCWCL8/JAThG LpLIdmjtAQ9krQ6MzV1MRZer3zCkMHPzwc+7HocUhVUKcGvoM+BYVpg4d725zfU1Mlqe 2mkcF9I0dJxIikuS5SpO4nYwwKQuvqjZFtlV4PxJHn1pO6XTnYf4g8VNgB+IZoTGVWFy jplME/b7fFzS6MtcI7HP7hCikluwwSQ8o/Qsg2nNUShQnbHIAQSbPCJFzzcSkHC9HAZ5 ZoJw== 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=XNDrDuYa3iWJuXJKyD6gXhX5XFme5N3YEsdm0o31DEg=; b=I6nCN60J4/5FAUlT2ZSfYBABF1yxiQ4SuEhXNWtABOIaXv6hbmJxFlKchON9wqWXt7 8bSNImcQDuBcEvAs8ToarHP5dMiJdGxIKhVjAKAmKLX+Lm7mInZBCTE3y/zwV85jV7gr v8+yldbk6v3/TR0sXOE3qj3pj1jayhIqSlJzFb/tALFMTo7Lv26S+FU67l7tOZXbq0PH XJKpHdodguKdiQ18Po1/piTulOlfPkwUzyzD5zSYDNrLd8aOG1r4sC7X1vBo3jlGrKgq mdi7guBzuZv3m5arp/YjwTKarwyXrs71CCdrOhR2KD1RHO9mVlbwULiDmbdKzSBMscuE ZeLA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=Po+suhv+; 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 c5-20020a637245000000b0053f89d7b39esi128939pgn.346.2023.06.01.18.26.33; Thu, 01 Jun 2023 18:26:46 -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=20221208 header.b=Po+suhv+; 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 S233326AbjFBBPi (ORCPT + 99 others); Thu, 1 Jun 2023 21:15:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41508 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233251AbjFBBPb (ORCPT ); Thu, 1 Jun 2023 21:15:31 -0400 Received: from mail-yb1-xb4a.google.com (mail-yb1-xb4a.google.com [IPv6:2607:f8b0:4864:20::b4a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EB85E199 for ; Thu, 1 Jun 2023 18:15:26 -0700 (PDT) Received: by mail-yb1-xb4a.google.com with SMTP id 3f1490d57ef6-bacfa4eefd2so2089016276.0 for ; Thu, 01 Jun 2023 18:15:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1685668526; x=1688260526; 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=XNDrDuYa3iWJuXJKyD6gXhX5XFme5N3YEsdm0o31DEg=; b=Po+suhv+8tQfEJPqRxrACOHdjZJr6yLdW6VxkO02vb+MHxsu4VMYOZCpTcDebrWjnK 5738//eSrPOHNp0DY8SragBWqRMzBLxVXuVgfE4ougaCogMIJw+nETG6kjdb36Z2Htzq lNYjNs/6RjAfL2Jqnx6VBZgmnJRAAZJvBw4rqJCA+LsNxX8JDl/scqSO3oqh9fopdqQI t9LFrhwbk8UNBGby9BfGJsomRdX8VCDme789sKFtZDc0jjmTUsnKOmec0hPIYSPkMfYW nrMt+UVVLwW/9wqxKSlQupZAiVTTRmQIP84xeBBr8ThQH5X5pnhXfNofP/yD4wyFV22W JLQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685668526; x=1688260526; 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=XNDrDuYa3iWJuXJKyD6gXhX5XFme5N3YEsdm0o31DEg=; b=NfaccLyLt7Em4dRDcqo2obuINgsRz/wAgk4VdUBzt4MFzhB+0e5+QFE4EFN4z7Ymet 5xY1TMzzWZyD4AZ76X6r+nBe9tV8k0YWGbKv+viIl58QkC3NmDPznRixXEvQ74ESYtMZ 3eQzPWEBW2AONkXIg1E7x8vKQCq/BBxMlpR5BliA7AEPfdUEXzoiNL1eVtfLaqhHxpml 30C1Nak5NeBbyCWuac35+MZxrU3PEGywtuIvEXTlyQb11bMbvOPk2gpL+QjpIakl7QAw NxwgwgJwyhdaqAKqHQHzcpfalS8jPz8H7E5p862WHhxw1rcGwioZE9ll6X+xa09tZM0Y f6zQ== X-Gm-Message-State: AC+VfDyVZQ+c3leO44koY60hw6FsYWVin9IOvHnI1b/aiO6YEdxfSTmo JViv8H7WHgzEOl4o0g/zRLcEiswRYas= X-Received: from zagreus.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5c37]) (user=seanjc job=sendgmr) by 2002:a25:adc6:0:b0:b8f:6b84:33cb with SMTP id d6-20020a25adc6000000b00b8f6b8433cbmr714516ybe.11.1685668526648; Thu, 01 Jun 2023 18:15:26 -0700 (PDT) Reply-To: Sean Christopherson Date: Thu, 1 Jun 2023 18:15:18 -0700 In-Reply-To: <20230602011518.787006-1-seanjc@google.com> Mime-Version: 1.0 References: <20230602011518.787006-1-seanjc@google.com> X-Mailer: git-send-email 2.41.0.rc2.161.g9c6817b8e7-goog Message-ID: <20230602011518.787006-4-seanjc@google.com> Subject: [PATCH 3/3] KVM: x86/mmu: Trigger APIC-access page reload iff vendor code cares From: Sean Christopherson To: Sean Christopherson , Paolo Bonzini Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, Jason Gunthorpe , Alistair Popple , Robin Murphy 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 Request an APIC-access page reload when the backing page is migrated (or unmapped) if and only if vendor code actually plugs the backing pfn into structures that reside outside of KVM's MMU. This avoids kicking all vCPUs in the (hopefully infrequent) scenario where the backing page is migrated/invalidated. Unlike VMX's APICv, SVM's AVIC doesn't plug the backing pfn directly into the VMCB and so doesn't need a hook to invalidate an out-of-MMU "mapping". Signed-off-by: Sean Christopherson --- arch/x86/kvm/mmu/mmu.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c index 01a11ce68e57..beb507d82adf 100644 --- a/arch/x86/kvm/mmu/mmu.c +++ b/arch/x86/kvm/mmu/mmu.c @@ -1600,7 +1600,8 @@ bool kvm_unmap_gfn_range(struct kvm *kvm, struct kvm_gfn_range *range) if (tdp_mmu_enabled) flush = kvm_tdp_mmu_unmap_gfn_range(kvm, range, flush); - if (range->slot->id == APIC_ACCESS_PAGE_PRIVATE_MEMSLOT) + if (kvm_x86_ops.set_apic_access_page_addr && + range->slot->id == APIC_ACCESS_PAGE_PRIVATE_MEMSLOT) kvm_make_all_cpus_request(kvm, KVM_REQ_APIC_PAGE_RELOAD); return flush; -- 2.41.0.rc2.161.g9c6817b8e7-goog