cea8896bd9
The kvm_riscv_vcpu_timer_pending() checks per-VCPU next_cycles
and per-VCPU software injected VS timer interrupt. This function
returns incorrect value when Sstc is available because the per-VCPU
next_cycles are only updated by kvm_riscv_vcpu_timer_save() called
from kvm_arch_vcpu_put(). As a result, when Sstc is available the
VCPU does not block properly upon WFI traps.
To fix the above issue, we introduce kvm_riscv_vcpu_timer_sync()
which will update per-VCPU next_cycles upon every VM exit instead
of kvm_riscv_vcpu_timer_save().
Fixes:
|
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
main.c | ||
mmu.c | ||
tlb.c | ||
vcpu.c | ||
vcpu_exit.c | ||
vcpu_fp.c | ||
vcpu_insn.c | ||
vcpu_sbi.c | ||
vcpu_sbi_base.c | ||
vcpu_sbi_hsm.c | ||
vcpu_sbi_replace.c | ||
vcpu_sbi_v01.c | ||
vcpu_switch.S | ||
vcpu_timer.c | ||
vm.c | ||
vmid.c |