[GIT PULL] KVM/riscv changes for 7.1
Paolo Bonzini
pbonzini at redhat.com
Mon Apr 13 02:43:14 PDT 2026
On Sun, Apr 12, 2026 at 3:14 PM Anup Patel <anup at brainfault.org> wrote:
>
> Hi Paolo,
>
> We have the following KVM RISC-V changes for 7.1:
> 1) Fixes for issues in steal time accounting, vector and
> PMU which were discovered by KVM API fuzzing
> 2) Split huge pages during fault handling for dirty logging
> so that write permission is restored for smaller pages
> 3) Improve kvm_arch_vcpu_load() performance by skipping
> CSR restore if VCPU is reloaded on the same core
> 4) Implement kvm_arch_has_default_irqchip() for KVM selftests
> 5) Support configuration of per-VM HGATP mode from KVM
> user space
> 6) Some more preparatory changes for nested virtualization
> such as:
> 6.1) Factored-out ISA checks into separate sources
> 6.2) Added hideleg to struct kvm_vcpu_config
> 6.3) Factored-out VCPU config into separate sources
Done, thanks.
Paolo
> Please pull.
>
> Regards,
> Anup
>
> The following changes since commit c369299895a591d96745d6492d4888259b004a9e:
>
> Linux 7.0-rc5 (2026-03-22 14:42:17 -0700)
>
> are available in the Git repository at:
>
> https://github.com/kvm-riscv/linux.git tags/kvm-riscv-7.1-1
>
> for you to fetch changes up to ddbf9c76c4020bf63a0799b00faad40caa3de6c2:
>
> RISC-V: KVM: Fix shift-out-of-bounds in make_xfence_request()
> (2026-04-06 09:43:02 +0530)
>
> ----------------------------------------------------------------
> KVM/riscv changes for 7.1
>
> - Fix steal time shared memory alignment checks
> - Fix vector context allocation leak
> - Fix array out-of-bounds in pmu_ctr_read() and pmu_fw_ctr_read_hi()
> - Fix double-free of sdata in kvm_pmu_clear_snapshot_area()
> - Fix integer overflow in kvm_pmu_validate_counter_mask()
> - Fix shift-out-of-bounds in make_xfence_request()
> - Fix lost write protection on huge pages during dirty logging
> - Split huge pages during fault handling for dirty logging
> - Skip CSR restore if VCPU is reloaded on the same core
> - Implement kvm_arch_has_default_irqchip() for KVM selftests
> - Factored-out ISA checks into separate sources
> - Added hideleg to struct kvm_vcpu_config
> - Factored-out VCPU config into separate sources
> - Support configuration of per-VM HGATP mode from KVM user space
>
> ----------------------------------------------------------------
> Anup Patel (6):
> RISC-V: KVM: Introduce common kvm_riscv_isa_check_host()
> RISC-V: KVM: Factor-out ISA checks into separate sources
> RISC-V: KVM: Move timer state defines closer to struct in UAPI header
> RISC-V: KVM: Add hideleg to struct kvm_vcpu_config
> RISC-V: KVM: Factor-out VCPU config into separate sources
> RISC-V: KVM: Don't check hstateen0 when updating sstateen0 CSR
>
> Fangyu Yu (3):
> RISC-V: KVM: Support runtime configuration for per-VM's HGATP mode
> RISC-V: KVM: Cache gstage pgd_levels in struct kvm_gstage
> RISC-V: KVM: Reuse KVM_CAP_VM_GPA_BITS to select HGATP.MODE
>
> Jiakai Xu (8):
> RISC-V: KVM: Validate SBI STA shmem alignment in kvm_sbi_ext_sta_set_reg()
> KVM: selftests: Refactor UAPI tests into dedicated function
> RISC-V: KVM: selftests: Add RISC-V SBI STA shmem alignment tests
> RISC-V: KVM: Fix array out-of-bounds in pmu_ctr_read() and
> pmu_fw_ctr_read_hi()
> RISC-V: KVM: selftests: Fix firmware counter read in sbi_pmu_test
> RISC-V: KVM: Fix double-free of sdata in kvm_pmu_clear_snapshot_area()
> RISC-V: KVM: Fix integer overflow in kvm_pmu_validate_counter_mask()
> RISC-V: KVM: Fix shift-out-of-bounds in make_xfence_request()
>
> Jinyu Tang (1):
> KVM: riscv: Skip CSR restore if VCPU is reloaded on the same core
>
> Mayuresh Chitale (1):
> KVM: riscv: selftests: Implement kvm_arch_has_default_irqchip
>
> Osama Abdelkader (2):
> RISC-V: KVM: fix PMU snapshot_set_shmem on 32-bit hosts
> riscv: kvm: fix vector context allocation leak
>
> Wang Yechao (2):
> RISC-V: KVM: Fix lost write protection on huge pages during dirty logging
> RISC-V: KVM: Split huge pages during fault handling for dirty logging
>
> Yufeng Wang (1):
> riscv: kvm: add null pointer check for vector datap
>
> arch/riscv/include/asm/kvm_gstage.h | 51 +++-
> arch/riscv/include/asm/kvm_host.h | 23 +-
> arch/riscv/include/asm/kvm_isa.h | 20 ++
> arch/riscv/include/asm/kvm_vcpu_config.h | 25 ++
> arch/riscv/include/uapi/asm/kvm.h | 8 +-
> arch/riscv/kvm/Makefile | 2 +
> arch/riscv/kvm/aia_device.c | 4 +-
> arch/riscv/kvm/gstage.c | 198 +++++++++++---
> arch/riscv/kvm/isa.c | 253 ++++++++++++++++++
> arch/riscv/kvm/main.c | 16 +-
> arch/riscv/kvm/mmu.c | 70 ++---
> arch/riscv/kvm/tlb.c | 3 +-
> arch/riscv/kvm/vcpu.c | 111 +++-----
> arch/riscv/kvm/vcpu_config.c | 103 ++++++++
> arch/riscv/kvm/vcpu_fp.c | 9 +-
> arch/riscv/kvm/vcpu_onereg.c | 284 ++-------------------
> arch/riscv/kvm/vcpu_pmu.c | 33 ++-
> arch/riscv/kvm/vcpu_sbi_sta.c | 16 +-
> arch/riscv/kvm/vcpu_timer.c | 3 +-
> arch/riscv/kvm/vcpu_vector.c | 11 +-
> arch/riscv/kvm/vm.c | 49 +++-
> arch/riscv/kvm/vmid.c | 3 +-
> .../testing/selftests/kvm/include/kvm_util_types.h | 2 +
> tools/testing/selftests/kvm/include/riscv/sbi.h | 37 +++
> tools/testing/selftests/kvm/lib/riscv/processor.c | 5 +
> tools/testing/selftests/kvm/riscv/sbi_pmu_test.c | 20 +-
> tools/testing/selftests/kvm/steal_time.c | 98 +++++--
> 27 files changed, 956 insertions(+), 501 deletions(-)
> create mode 100644 arch/riscv/include/asm/kvm_isa.h
> create mode 100644 arch/riscv/include/asm/kvm_vcpu_config.h
> create mode 100644 arch/riscv/kvm/isa.c
> create mode 100644 arch/riscv/kvm/vcpu_config.c
>
More information about the linux-riscv
mailing list