From nobody Wed Apr 8 17:33:30 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 B8AC1ECAAA1 for ; Thu, 27 Oct 2022 16:19:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236726AbiJ0QTv (ORCPT ); Thu, 27 Oct 2022 12:19:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54284 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236569AbiJ0QTB (ORCPT ); Thu, 27 Oct 2022 12:19:01 -0400 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 103D8196B5F for ; Thu, 27 Oct 2022 09:18:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1666887536; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=nHpsDXiz+aHYtK+0lAoWeHJtx3zrlQWx8bxkmWSYZoI=; b=gQa8San15Dl5oT1qq0O+g5yCgwqcyJpdMtjQ+KTCThHzXFaLDQlqktmP/QRX6tp7MWr9If j8IPnZOS63Q5nGwWZaLdPTY9AuK54/uXBz2OIXJH8niW0WEacY7S71pQyYmighubTH25Lx uwwUo4kgsrILCsI/eSp0WC5QtYguZ8I= Received: from mimecast-mx02.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-423-4cbIMR2gNtSLMgLC42Eb8w-1; Thu, 27 Oct 2022 12:18:52 -0400 X-MC-Unique: 4cbIMR2gNtSLMgLC42Eb8w-1 Received: from smtp.corp.redhat.com (int-mx07.intmail.prod.int.rdu2.redhat.com [10.11.54.7]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id ED5101C0896D; Thu, 27 Oct 2022 16:18:51 +0000 (UTC) Received: from virtlab701.virt.lab.eng.bos.redhat.com (virtlab701.virt.lab.eng.bos.redhat.com [10.19.152.228]) by smtp.corp.redhat.com (Postfix) with ESMTP id CC29C1401C21; Thu, 27 Oct 2022 16:18:51 +0000 (UTC) From: Paolo Bonzini To: linux-kernel@vger.kernel.org, kvm@vger.kernel.org Cc: mhal@rbox.co, seanjc@google.com Subject: [PATCH 09/16] KVM: Clean up hva_to_pfn_retry() Date: Thu, 27 Oct 2022 12:18:42 -0400 Message-Id: <20221027161849.2989332-10-pbonzini@redhat.com> In-Reply-To: <20221027161849.2989332-1-pbonzini@redhat.com> References: <20221027161849.2989332-1-pbonzini@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Scanned-By: MIMEDefang 3.1 on 10.11.54.7 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Michal Luczaj Make hva_to_pfn_retry() use kvm instance cached in gfn_to_pfn_cache. Suggested-by: Sean Christopherson Signed-off-by: Michal Luczaj Signed-off-by: Sean Christopherson Message-Id: <20221013211234.1318131-10-seanjc@google.com> Signed-off-by: Paolo Bonzini --- virt/kvm/pfncache.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/virt/kvm/pfncache.c b/virt/kvm/pfncache.c index dfcf883ca298..48f400819d1e 100644 --- a/virt/kvm/pfncache.c +++ b/virt/kvm/pfncache.c @@ -138,7 +138,7 @@ static inline bool mmu_notifier_retry_cache(struct kvm = *kvm, unsigned long mmu_s return kvm->mmu_invalidate_seq !=3D mmu_seq; } =20 -static kvm_pfn_t hva_to_pfn_retry(struct kvm *kvm, struct gfn_to_pfn_cache= *gpc) +static kvm_pfn_t hva_to_pfn_retry(struct gfn_to_pfn_cache *gpc) { /* Note, the new page offset may be different than the old! */ void *old_khva =3D gpc->khva - offset_in_page(gpc->khva); @@ -158,7 +158,7 @@ static kvm_pfn_t hva_to_pfn_retry(struct kvm *kvm, stru= ct gfn_to_pfn_cache *gpc) gpc->valid =3D false; =20 do { - mmu_seq =3D kvm->mmu_invalidate_seq; + mmu_seq =3D gpc->kvm->mmu_invalidate_seq; smp_rmb(); =20 write_unlock_irq(&gpc->lock); @@ -216,7 +216,7 @@ static kvm_pfn_t hva_to_pfn_retry(struct kvm *kvm, stru= ct gfn_to_pfn_cache *gpc) * attempting to refresh. */ WARN_ON_ONCE(gpc->valid); - } while (mmu_notifier_retry_cache(kvm, mmu_seq)); + } while (mmu_notifier_retry_cache(gpc->kvm, mmu_seq)); =20 gpc->valid =3D true; gpc->pfn =3D new_pfn; @@ -296,7 +296,7 @@ static int __kvm_gpc_refresh(struct kvm *kvm, struct gf= n_to_pfn_cache *gpc, gpa_ * drop the lock and do the HVA to PFN lookup again. */ if (!gpc->valid || old_uhva !=3D gpc->uhva) { - ret =3D hva_to_pfn_retry(kvm, gpc); + ret =3D hva_to_pfn_retry(gpc); } else { /* If the HVA\ufffd\ufffd\ufffdPFN mapping was already valid, don't unma= p it. */ old_pfn =3D KVM_PFN_ERR_FAULT; --=20 2.31.1