[GIT PULL] KVM/riscv changes for 6.17
Anup Patel
anup at brainfault.org
Fri Jul 25 05:06:36 PDT 2025
Hi Paolo,
We have the following KVM RISC-V changes for 6.17:
1) Enabled ring-based dirty memory tracking
2) Improved "perf kvm stat" to report interrupt events
3) Delegate illegal instruction trap to VS-mode
4) Added SBI FWFT extension for Guest/VM with misaligned
delegation and pointer masking PMLEN features
5) MMU related improvements for KVM RISC-V for the
upcoming nested virtualization support
Please pull.
Regards,
Anup
The following changes since commit 4cec89db80ba81fa4524c6449c0494b8ae08eeb0:
RISC-V: KVM: Move HGEI[E|P] CSR access to IMSIC virtualization
(2025-07-11 18:33:27 +0530)
are available in the Git repository at:
https://github.com/kvm-riscv/linux.git tags/kvm-riscv-6.17-1
for you to fetch changes up to 583c7288feb43eb8cbb18d08376d328e9a48e72d:
RISC-V: KVM: Avoid re-acquiring memslot in kvm_riscv_gstage_map()
(2025-07-23 17:20:41 +0530)
----------------------------------------------------------------
KVM/riscv changes for 6.17
- Enabled ring-based dirty memory tracking
- Improved perf kvm stat to report interrupt events
- Delegate illegal instruction trap to VS-mode
- Added SBI FWFT extension for Guest/VM with misaligned
delegation and pointer masking PMLEN features
- MMU related improvements for KVM RISC-V for upcoming
nested virtualization
----------------------------------------------------------------
Anup Patel (12):
RISC-V: KVM: Check kvm_riscv_vcpu_alloc_vector_context() return value
RISC-V: KVM: Drop the return value of kvm_riscv_vcpu_aia_init()
RISC-V: KVM: Rename and move kvm_riscv_local_tlb_sanitize()
RISC-V: KVM: Replace KVM_REQ_HFENCE_GVMA_VMID_ALL with KVM_REQ_TLB_FLUSH
RISC-V: KVM: Don't flush TLB when PTE is unchanged
RISC-V: KVM: Implement kvm_arch_flush_remote_tlbs_range()
RISC-V: KVM: Use ncsr_xyz() in kvm_riscv_vcpu_trap_redirect()
RISC-V: KVM: Factor-out MMU related declarations into separate headers
RISC-V: KVM: Introduce struct kvm_gstage_mapping
RISC-V: KVM: Add vmid field to struct kvm_riscv_hfence
RISC-V: KVM: Factor-out g-stage page table management
RISC-V: KVM: Pass VMID as parameter to kvm_riscv_hfence_xyz() APIs
Clément Léger (4):
RISC-V: KVM: add SBI extension init()/deinit() functions
RISC-V: KVM: add SBI extension reset callback
RISC-V: KVM: add support for FWFT SBI extension
RISC-V: KVM: add support for SBI_FWFT_MISALIGNED_DELEG
Quan Zhou (4):
RISC-V: KVM: Enable ring-based dirty memory tracking
RISC-V: perf/kvm: Add reporting of interrupt events
RISC-V: KVM: Use find_vma_intersection() to search for intersecting VMAs
RISC-V: KVM: Avoid re-acquiring memslot in kvm_riscv_gstage_map()
Samuel Holland (2):
RISC-V: KVM: Fix inclusion of Smnpm in the guest ISA bitmap
RISC-V: KVM: Add support for SBI_FWFT_POINTER_MASKING_PMLEN
Xu Lu (1):
RISC-V: KVM: Delegate illegal instruction fault to VS mode
Documentation/virt/kvm/api.rst | 2 +-
arch/riscv/include/asm/kvm_aia.h | 2 +-
arch/riscv/include/asm/kvm_gstage.h | 72 +++
arch/riscv/include/asm/kvm_host.h | 109 +----
arch/riscv/include/asm/kvm_mmu.h | 21 +
arch/riscv/include/asm/kvm_tlb.h | 84 ++++
arch/riscv/include/asm/kvm_vcpu_sbi.h | 13 +
arch/riscv/include/asm/kvm_vcpu_sbi_fwft.h | 33 ++
arch/riscv/include/asm/kvm_vmid.h | 27 ++
arch/riscv/include/uapi/asm/kvm.h | 2 +
arch/riscv/kvm/Kconfig | 1 +
arch/riscv/kvm/Makefile | 2 +
arch/riscv/kvm/aia_device.c | 6 +-
arch/riscv/kvm/aia_imsic.c | 12 +-
arch/riscv/kvm/gstage.c | 338 ++++++++++++++
arch/riscv/kvm/main.c | 3 +-
arch/riscv/kvm/mmu.c | 509 +++++----------------
arch/riscv/kvm/tlb.c | 110 ++---
arch/riscv/kvm/vcpu.c | 48 +-
arch/riscv/kvm/vcpu_exit.c | 20 +-
arch/riscv/kvm/vcpu_onereg.c | 84 ++--
arch/riscv/kvm/vcpu_sbi.c | 53 +++
arch/riscv/kvm/vcpu_sbi_fwft.c | 338 ++++++++++++++
arch/riscv/kvm/vcpu_sbi_replace.c | 17 +-
arch/riscv/kvm/vcpu_sbi_sta.c | 3 +-
arch/riscv/kvm/vcpu_sbi_v01.c | 25 +-
arch/riscv/kvm/vm.c | 7 +-
arch/riscv/kvm/vmid.c | 25 +
tools/perf/arch/riscv/util/kvm-stat.c | 6 +-
tools/perf/arch/riscv/util/riscv_exception_types.h | 35 --
tools/perf/arch/riscv/util/riscv_trap_types.h | 57 +++
31 files changed, 1382 insertions(+), 682 deletions(-)
create mode 100644 arch/riscv/include/asm/kvm_gstage.h
create mode 100644 arch/riscv/include/asm/kvm_mmu.h
create mode 100644 arch/riscv/include/asm/kvm_tlb.h
create mode 100644 arch/riscv/include/asm/kvm_vcpu_sbi_fwft.h
create mode 100644 arch/riscv/include/asm/kvm_vmid.h
create mode 100644 arch/riscv/kvm/gstage.c
create mode 100644 arch/riscv/kvm/vcpu_sbi_fwft.c
delete mode 100644 tools/perf/arch/riscv/util/riscv_exception_types.h
create mode 100644 tools/perf/arch/riscv/util/riscv_trap_types.h
More information about the linux-riscv
mailing list