* [GIT PULL] KVM/riscv changes for 7.1
@ 2026-04-12 13:14 Anup Patel
2026-04-13 9:43 ` Paolo Bonzini
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Anup Patel @ 2026-04-12 13:14 UTC (permalink / raw)
To: Paolo Bonzini
Cc: Palmer Dabbelt, Paul Walmsley, Andrew Jones, Atish Patra,
open list:KERNEL VIRTUAL MACHINE FOR RISC-V (KVM/riscv),
KVM General, linux-riscv
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
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [GIT PULL] KVM/riscv changes for 7.1
2026-04-12 13:14 [GIT PULL] KVM/riscv changes for 7.1 Anup Patel
@ 2026-04-13 9:43 ` Paolo Bonzini
2026-04-30 3:25 ` patchwork-bot+linux-riscv
2026-04-30 4:08 ` patchwork-bot+linux-riscv
2 siblings, 0 replies; 4+ messages in thread
From: Paolo Bonzini @ 2026-04-13 9:43 UTC (permalink / raw)
To: Anup Patel
Cc: Palmer Dabbelt, Paul Walmsley, Andrew Jones, Atish Patra,
open list:KERNEL VIRTUAL MACHINE FOR RISC-V (KVM/riscv),
KVM General, linux-riscv
On Sun, Apr 12, 2026 at 3:14 PM Anup Patel <anup@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
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [GIT PULL] KVM/riscv changes for 7.1
2026-04-12 13:14 [GIT PULL] KVM/riscv changes for 7.1 Anup Patel
2026-04-13 9:43 ` Paolo Bonzini
@ 2026-04-30 3:25 ` patchwork-bot+linux-riscv
2026-04-30 4:08 ` patchwork-bot+linux-riscv
2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+linux-riscv @ 2026-04-30 3:25 UTC (permalink / raw)
To: Anup Patel
Cc: linux-riscv, pbonzini, palmer, pjw, andrew.jones, atish.patra,
kvm-riscv, kvm
Hello:
This pull request was applied to riscv/linux.git (fixes)
by Paolo Bonzini <pbonzini@redhat.com>:
On Sun, 12 Apr 2026 18:44:24 +0530 you 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
>
> [...]
Here is the summary with links:
- [GIT,PULL] KVM/riscv changes for 7.1
https://git.kernel.org/riscv/c/d880d2a9c694
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [GIT PULL] KVM/riscv changes for 7.1
2026-04-12 13:14 [GIT PULL] KVM/riscv changes for 7.1 Anup Patel
2026-04-13 9:43 ` Paolo Bonzini
2026-04-30 3:25 ` patchwork-bot+linux-riscv
@ 2026-04-30 4:08 ` patchwork-bot+linux-riscv
2 siblings, 0 replies; 4+ messages in thread
From: patchwork-bot+linux-riscv @ 2026-04-30 4:08 UTC (permalink / raw)
To: Anup Patel
Cc: linux-riscv, pbonzini, palmer, pjw, andrew.jones, atish.patra,
kvm-riscv, kvm
Hello:
This pull request was applied to riscv/linux.git (for-next)
by Paolo Bonzini <pbonzini@redhat.com>:
On Sun, 12 Apr 2026 18:44:24 +0530 you 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
>
> [...]
Here is the summary with links:
- [GIT,PULL] KVM/riscv changes for 7.1
https://git.kernel.org/riscv/c/d880d2a9c694
You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-04-30 4:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-12 13:14 [GIT PULL] KVM/riscv changes for 7.1 Anup Patel
2026-04-13 9:43 ` Paolo Bonzini
2026-04-30 3:25 ` patchwork-bot+linux-riscv
2026-04-30 4:08 ` patchwork-bot+linux-riscv
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox