On Wed, Jun 18, 2025 at 5:05 PM Anup Patel <apatel@xxxxxxxxxxxxxxxx> wrote: > > This series primarily has various MMU improvements for KVM RISC-V > and it also serves as a preparatory series for the upcoming nested > virtualization support. > > PATCH1 to PATCH4: Few cosmetic improvements > PATCH5 to PATCH7: TLB maintenance and SBI NACL related improvements > PATCH8 to PATCH12: MMU related preparatory work for nested virtualization > > These patches can also be found in the riscv_kvm_mmu_imp_v3 branch > at: https://github.com/avpatel/linux.git > > Changes since v2: > - Rebased upon Linux-6.16-rc2 and latest riscv_kvm_queue branch > - Added Reviewed-by tags to appropriate patches > > Changes since v1: > - Rebased upon Linux-6.16-rc1 > - Dropped PATCH1 and PATCH2 of v1 series since these are queued > as fixes for Linux-6.16 > - Addressed Atish's comment on PATCH1 in this series > - Added new PATCH7 in this series > > 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 Queued this series for Linux-6.17 Thanks, Anup > > arch/riscv/include/asm/kvm_aia.h | 2 +- > arch/riscv/include/asm/kvm_gstage.h | 72 ++++ > arch/riscv/include/asm/kvm_host.h | 103 +----- > arch/riscv/include/asm/kvm_mmu.h | 21 ++ > arch/riscv/include/asm/kvm_tlb.h | 84 +++++ > arch/riscv/include/asm/kvm_vmid.h | 27 ++ > arch/riscv/kvm/Makefile | 1 + > 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 | 499 ++++++---------------------- > arch/riscv/kvm/tlb.c | 110 +++--- > arch/riscv/kvm/vcpu.c | 26 +- > arch/riscv/kvm/vcpu_exit.c | 20 +- > arch/riscv/kvm/vcpu_sbi_replace.c | 17 +- > arch/riscv/kvm/vcpu_sbi_v01.c | 25 +- > arch/riscv/kvm/vm.c | 7 +- > arch/riscv/kvm/vmid.c | 25 ++ > 19 files changed, 795 insertions(+), 603 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_vmid.h > create mode 100644 arch/riscv/kvm/gstage.c > > -- > 2.43.0 >