MMU related improvements for KVM RISC-V
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v3 Latest12 patches 15 repliesIn review
- v212 patches 11 repliesSuperseded
- v113 patches 11 repliesSuperseded
Changes in v3 from the cover letter
- Rebased upon Linux-6.16-rc2 and latest riscv_kvm_queue branch
- Added Reviewed-by tags to appropriate patches
Patches in v3 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/12 | RISC-V: KVM: Check kvm_riscv_vcpu_alloc_vector_context() return valuearch/ | +3 | 2 replies | |
| 2/12 | RISC-V: KVM: Drop the return value of kvm_riscv_vcpu_aia_init()arch/ arch/ arch/ | +4 | 2 replies | |
| 3/12 | RISC-V: KVM: Rename and move kvm_riscv_local_tlb_sanitize()arch/ arch/ arch/ +1 more | +26 | 0 replies | |
| 4/12 | RISC-V: KVM: Replace KVM_REQ_HFENCE_GVMA_VMID_ALL with KVM_REQ_TLB_FLUSHarch/ arch/ arch/ | +8 | 1 reply | |
| 5/12 | RISC-V: KVM: Don't flush TLB when PTE is unchangedarch/ | +9 | 1 reply | |
| 6/12 | RISC-V: KVM: Implement kvm_arch_flush_remote_tlbs_range()arch/ arch/ arch/ | +11 | 1 reply | |
| 7/12 | RISC-V: KVM: Use ncsr_xyz() in kvm_riscv_vcpu_trap_redirect()arch/ | +7 | 1 reply | |
| 8/12 | RISC-V: KVM: Factor-out MMU related declarations into separate headersarch/ arch/ arch/ +9 more | +143 | 1 reply | |
| 9/12 | RISC-V: KVM: Introduce struct kvm_gstage_mappingarch/ arch/ arch/ | +43 | 1 reply | |
| 10/12 | RISC-V: KVM: Add vmid field to struct kvm_riscv_hfencearch/ arch/ | +17 | 1 reply | |
| 11/12 | RISC-V: KVM: Factor-out g-stage page table managementarch/ arch/ arch/ +7 more | +530 | 1 reply | |
| 12/12 | RISC-V: KVM: Pass VMID as parameter to kvm_riscv_hfence_xyz() APIsarch/ arch/ arch/ +2 more | +73 | 1 reply |
Reviews trailers per patch
All 12 patches have a Reviewed-by or Acked-by.
| Patch | Nutty Liu | Atish Patra |
|---|---|---|
| Series | T-b | |
| 1/12 | R-b | R-b |
| 2/12 | R-b R-b | R-b |
| 3/12 | R-b | R-b |
| 4/12 | R-b | R-b |
| 5/12 | R-b | R-b |
| 6/12 | R-b | R-b |
| 7/12 | R-b | R-b |
| 8/12 | R-b | R-b |
| 9/12 | R-b | R-b |
| 10/12 | R-b | R-b |
| 11/12 | R-b | |
| 12/12 | R-b |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.
Cover letter [PATCH v3 00/12] MMU related improvements for KVM RISC-V
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
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
Signature · 1 line
2.43.0