linux/arch/arm64
Keqian Zhu 2aa53d68ce KVM: arm64: Try stage2 block mapping for host device MMIO
The MMIO region of a device maybe huge (GB level), try to use
block mapping in stage2 to speedup both map and unmap.

Compared to normal memory mapping, we should consider two more
points when try block mapping for MMIO region:

1. For normal memory mapping, the PA(host physical address) and
HVA have same alignment within PUD_SIZE or PMD_SIZE when we use
the HVA to request hugepage, so we don't need to consider PA
alignment when verifing block mapping. But for device memory
mapping, the PA and HVA may have different alignment.

2. For normal memory mapping, we are sure hugepage size properly
fit into vma, so we don't check whether the mapping size exceeds
the boundary of vma. But for device memory mapping, we should pay
attention to this.

This adds get_vma_page_shift() to get page shift for both normal
memory and device MMIO region, and check these two points when
selecting block mapping size for MMIO region.

Signed-off-by: Keqian Zhu <zhukeqian1@huawei.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210507110322.23348-3-zhukeqian1@huawei.com
2021-06-01 12:01:47 +01:00
..
boot ARM: SoC fixes for 5.13 2021-05-20 14:46:26 -10:00
configs ARM: platform support for Apple M1 2021-04-26 12:30:36 -07:00
crypto arm64 updates for 5.13: 2021-04-26 10:25:03 -07:00
include ARM fixes: 2021-05-29 06:02:25 -10:00
kernel Assorted arm64 fixes and clean-ups, the most important: 2021-05-07 12:11:05 -07:00
kvm KVM: arm64: Try stage2 block mapping for host device MMIO 2021-06-01 12:01:47 +01:00
lib arm64: lib: Annotate {clear, copy}_page() as position-independent 2021-03-19 12:01:19 +00:00
mm arm64: mm: don't use CON and BLK mapping if KFENCE is enabled 2021-05-25 14:04:38 +01:00
net bpf: Rename BPF_XADD and prepare to encode other atomics in .imm 2021-01-14 18:34:29 -08:00
tools arm64: tools: Add __ASM_CPUCAPS_H to the endif in cpucaps.h 2021-05-13 17:57:43 +01:00
xen
Kbuild bpf: Fix BPF_JIT kconfig symbol dependency 2021-05-20 23:48:37 +02:00
Kconfig Assorted arm64 fixes and clean-ups, the most important: 2021-05-07 12:11:05 -07:00
Kconfig.debug
Kconfig.platforms This is the bulk of the pin control changes for the v5.13 kernel cycle 2021-04-30 13:04:30 -07:00
Makefile arm64: Generate cpucaps.h 2021-05-10 10:16:37 +01:00