[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <0b7f9c30-eb12-35c5-191f-0e8e469e1b88@redhat.com>
Date: Thu, 24 Jun 2021 12:17:31 +0200
From: Paolo Bonzini <pbonzini@...hat.com>
To: Marc Zyngier <maz@...nel.org>, Nicholas Piggin <npiggin@...il.com>
Cc: Aleksandar Markovic <aleksandar.qemu.devel@...il.com>,
Huacai Chen <chenhuacai@...nel.org>,
Paul Mackerras <paulus@...abs.org>,
David Stevens <stevensd@...omium.org>,
Zhenyu Wang <zhenyuw@...ux.intel.com>,
Zhi Wang <zhi.a.wang@...el.com>,
Alexandru Elisei <alexandru.elisei@....com>,
dri-devel@...ts.freedesktop.org, intel-gfx@...ts.freedesktop.org,
intel-gvt-dev@...ts.freedesktop.org,
James Morse <james.morse@....com>,
Jim Mattson <jmattson@...gle.com>,
Joerg Roedel <joro@...tes.org>, kvmarm@...ts.cs.columbia.edu,
kvm-ppc@...r.kernel.org, kvm@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org,
linux-mips@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
Sean Christopherson <seanjc@...gle.com>,
Suzuki K Poulose <suzuki.poulose@....com>,
Vitaly Kuznetsov <vkuznets@...hat.com>,
Wanpeng Li <wanpengli@...cent.com>,
Will Deacon <will@...nel.org>
Subject: Re: [PATCH 3/6] KVM: x86/mmu: avoid struct page in MMU
On 24/06/21 12:06, Marc Zyngier wrote:
> On Thu, 24 Jun 2021 09:58:00 +0100,
> Nicholas Piggin <npiggin@...il.com> wrote:
>>
>> Excerpts from David Stevens's message of June 24, 2021 1:57 pm:
>>> From: David Stevens <stevensd@...omium.org>
>>> out_unlock:
>>> if (is_tdp_mmu_root(vcpu->kvm, vcpu->arch.mmu->root_hpa))
>>> read_unlock(&vcpu->kvm->mmu_lock);
>>> else
>>> write_unlock(&vcpu->kvm->mmu_lock);
>>> - kvm_release_pfn_clean(pfn);
>>> + if (pfnpg.page)
>>> + put_page(pfnpg.page);
>>> return r;
>>> }
>>
>> How about
>>
>> kvm_release_pfn_page_clean(pfnpg);
>
> I'm not sure. I always found kvm_release_pfn_clean() ugly, because it
> doesn't mark the page 'clean'. I find put_page() more correct.
>
> Something like 'kvm_put_pfn_page()' would make more sense, but I'm so
> bad at naming things that I could just as well call it 'bob()'.
The best way to go would be to get rid of kvm_release_pfn_clean() and
always go through a pfn_page. Then we could or could not introduce
wrappers kvm_put_pfn_page{,_dirty}.
I think for now it's best to limit the churn since these patches will go
in the stable releases too, and clean up the resulting API once we have
a clear idea of how all architectures are using kvm_pfn_page.
Paolo
Powered by blists - more mailing lists