[PATCH v2 0/2] Few timer and AIA fixes for KVM RISC-V
Anup Patel
anup at brainfault.org
Fri Jul 11 06:05:17 PDT 2025
On Mon, Jul 7, 2025 at 9:23 AM Anup Patel <apatel at ventanamicro.com> wrote:
>
> The RISC-V Privileged specificaiton says the following: "WFI is also
> required to resume execution for locally enabled interrupts pending
> at any privilege level, regardless of the global interrupt enable at
> each privilege level."
>
> Based on the above, if there is pending VS-timer interrupt when the
> host (aka HS-mode) executes WFI then such a WFI will simply become NOP
> and not do anything. This result in QEMU RISC-V consuming a lot of CPU
> time on the x86 machine where it is running. The PATCH1 solves this
> issue by adding appropriate cleanup in KVM RISC-V timer virtualization.
>
> As a result PATCH1, race conditions in updating HGEI[E|P] CSRs when a
> VCPU is moved from one host CPU to another are being observed on QEMU
> so the PATCH2 tries to minimize the chances of these race conditions.
>
> Changes since v1:
> - Added more details about race condition in PATCH2 commit description.
>
> Anup Patel (2):
> RISC-V: KVM: Disable vstimecmp before exiting to user-space
> RISC-V: KVM: Move HGEI[E|P] CSR access to IMSIC virtualization
>
> arch/riscv/include/asm/kvm_aia.h | 4 ++-
> arch/riscv/kvm/aia.c | 51 +++++---------------------------
> arch/riscv/kvm/aia_imsic.c | 45 ++++++++++++++++++++++++++++
> arch/riscv/kvm/vcpu.c | 2 --
> arch/riscv/kvm/vcpu_timer.c | 16 ++++++++++
> 5 files changed, 71 insertions(+), 47 deletions(-)
>
Queued this series as fixes for Linux-6.16
I have taken care of the comment on PATCH2 at the time of queuing.
Thanks,
Anup
More information about the kvm-riscv
mailing list