[RFC PATCH v2 21/58] KVM: arm64: pkvm: Add __pkvm_host_add_remove_page()
Quentin Perret
qperret at google.com
Thu Dec 19 03:10:23 PST 2024
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()?
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