From patchwork Fri Jun 2 01:15:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sean Christopherson X-Patchwork-Id: 102254 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp722357vqr; Thu, 1 Jun 2023 18:19:24 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ41r3y68ShhSlk80/UL/7B7JJFs6DbX1t8SbhMIAWBBoXqdypIsVACbFQ47uH9Fw6738O98 X-Received: by 2002:a05:6a20:2447:b0:10f:708b:bb28 with SMTP id t7-20020a056a20244700b0010f708bbb28mr14059782pzc.7.1685668764513; Thu, 01 Jun 2023 18:19:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1685668764; cv=none; d=google.com; s=arc-20160816; b=aaI5D1rlroxMIHcN6CZW6lRxEyYqxWf+g5oOcZn3EjpRj6PqU5rfz2v05HfhCrNf75 7fOjwv1sY4w4IxAXfm0ejNtUSKGeqR0qWGt0xM4v9MgN8INFd3yA+jYSmF/1omY779r2 B0O9rWiu6iJRxHyyEjj1xJ88XW2eJxgvCztdkbtzZsymIsCdjgfbu82lKfBAW5il55oz LMFoQWE8r8FnCoQ7WaPf705m3JK7Z6T1FzSrLcpnozC184DCY+FFV7f0PHdycmUTTDDe k04SyDLEjdCFgXQpXbYuJIBFC5tteR1ulGcpVSJ2ODVhZvhxF6rfsf6MNIjDUjSPySys 6Plw== 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 Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id n26-20020a63721a000000b00540107fc033si118337pgc.282.2023.06.01.18.19.10; Thu, 01 Jun 2023 18:19:24 -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 S233330AbjFBBPi (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 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 X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1767551810344224836?= X-GMAIL-MSGID: =?utf-8?q?1767551810344224836?= 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;