[PATCH 0/4] Implement Eager Page Splitting for RISC-V
wang.yechao255 at zte.com.cn
wang.yechao255 at zte.com.cn
Wed May 13 00:36:56 PDT 2026
From: Wang Yechao <wang.yechao255 at zte.com.cn>
Eager Page Splitting is implemented on x86 and ARM. It improves the
performance of dirty logging (used in live migrations) when guest memory
is backed by huge pages.
This series implement Eager Page Splitting for RISC-V. The Implementation
similar to x86 and ARM. It provides two ways to split huge pages in ioctl
context instead of on fault in vCPU context:
- Split huge pages when dirty logging is enabled when
KVM_DIRTY_LOG_INITIALLY_SET is not set. This happens when enabling the
KVM_MEM_LOG_DIRTY_PAGES flag of a memslot, and splits the whole memslot
into 4K mappings.
- Split huge pages during KVM_CLEAR_DIRTY_LOG when
KVM_DIRTY_LOG_INITIALLY_SET is set. This happens when enabling dirty log
in small chunks. It does not split the whole memslot, but only the
requested chunk range.
Wang Yechao (4):
RISC-V: KVM: Add the split page cache for ioctl context
RISC-V: KVM: Split huge pages when dirty logging is enabled
RISC-V: KVM: Split huge pages during KVM_CLEAR_DIRTY_LOG
RISC-V: KVM: Add the eager_page_split module parameter
arch/riscv/include/asm/kvm_host.h | 2 +
arch/riscv/kvm/mmu.c | 75 +++++++++++++++++++++++++++++++
2 files changed, 75 insertions(+)
--
2.43.5
More information about the linux-riscv
mailing list