[RFC PATCH v2 21/58] KVM: arm64: pkvm: Add __pkvm_host_add_remove_page()
Mostafa Saleh
smostafa at google.com
Thu Dec 19 03:19:26 PST 2024
On Thu, Dec 19, 2024 at 11:10:23AM +0000, Quentin Perret wrote:
> On Thursday 12 Dec 2024 at 18:03:45 (+0000), Mostafa Saleh wrote:
> > From: Jean-Philippe Brucker <jean-philippe at linaro.org>
> > +/*
> > + * Temporarily unmap a page from the host stage-2, if @remove is true, or put it
> > + * back. After restoring the ownership to host, the page will be lazy-mapped.
> > + */
> > +int __pkvm_host_add_remove_page(u64 pfn, bool remove)
> > +{
> > + int ret;
> > + u64 host_addr = hyp_pfn_to_phys(pfn);
> > + u8 owner = remove ? PKVM_ID_HYP : PKVM_ID_HOST;
> > +
> > + host_lock_component();
> > + ret = host_stage2_set_owner_locked(host_addr, PAGE_SIZE, owner);
>
> Any reason why this can't be expressed using __pkvm_host_donate_hyp()
> and __pkvm_hyp_donate_host()?
That makes more sense, I will fix it.
>
> This doesn't check any state, so it feels like a dangerous primitive to
> have. Is the issue the overhead of mapping/unmapping into EL2 stage-1?
More information about the linux-arm-kernel
mailing list