diff options
| author | Vincent Donnefort <[email protected]> | 2025-05-21 12:48:34 +0000 |
|---|---|---|
| committer | Marc Zyngier <[email protected]> | 2025-05-21 13:33:51 +0000 |
| commit | c353fde17d8f7e710884532da50393cd22ddbfbe (patch) | |
| tree | 62d854146534e1251bed5011d0aa15d42263eb0a /rust/helpers/security.c | |
| parent | KVM: arm64: Stage-2 huge mappings for np-guests (diff) | |
| download | kernel-c353fde17d8f7e710884532da50393cd22ddbfbe.tar.gz kernel-c353fde17d8f7e710884532da50393cd22ddbfbe.zip | |
KVM: arm64: np-guest CMOs with PMD_SIZE fixmap
With the introduction of stage-2 huge mappings in the pKVM hypervisor,
guest pages CMO is needed for PMD_SIZE size. Fixmap only supports
PAGE_SIZE and iterating over the huge-page is time consuming (mostly due
to TLBI on hyp_fixmap_unmap) which is a problem for EL2 latency.
Introduce a shared PMD_SIZE fixmap (hyp_fixblock_map/hyp_fixblock_unmap)
to improve guest page CMOs when stage-2 huge mappings are installed.
On a Pixel6, the iterative solution resulted in a latency of ~700us,
while the PMD_SIZE fixmap reduces it to ~100us.
Because of the horrendous private range allocation that would be
necessary, this is disabled for 64KiB pages systems.
Suggested-by: Quentin Perret <[email protected]>
Signed-off-by: Vincent Donnefort <[email protected]>
Signed-off-by: Quentin Perret <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Marc Zyngier <[email protected]>
Diffstat (limited to 'rust/helpers/security.c')
0 files changed, 0 insertions, 0 deletions
