Re: [PATCH] KVM: riscv: Avoid redundant interrupt check for pending timers
"Nutty.Liu" <[email protected]>
| Newsgroups | org.kernel.vger.kvm,org.infradead.lists.kvm-riscv,org.infradead.lists.linux-riscv,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <SE3PR04MB8922E6F977EB1EECF743061DF3AF2@SE3PR04MB8922.apcprd04.prod.outlook.com> |
On 8/14/2026 8:35 PM, Jinyu Tang wrote: > kvm_vcpu_check_block() calls kvm_arch_vcpu_runnable() before > checking whether a timer is pending. On RISC-V, kvm_arch_vcpu_runnable() > already checks all pending guest interrupts through > kvm_riscv_vcpu_has_interrupts(vcpu, -1UL), including IRQ_VS_TIMER. > > Drop the repeated IRQ_VS_TIMER pending-interrupt check from > kvm_riscv_vcpu_timer_pending() and keep the helper focused on the timer > deadline state. If the timer becomes pending after the runnable check, > the timer path still injects IRQ_VS_TIMER and kicks the vCPU through the > normal wakeup path. > > Signed-off-by: Jinyu Tang <[email protected]> Reviewed-by: Nutty Liu <[email protected]> Thanks, Nutty > --- > arch/riscv/kvm/vcpu_timer.c | 6 +----- > 1 file changed, 1 insertion(+), 5 deletions(-) > > diff --git a/arch/riscv/kvm/vcpu_timer.c b/arch/riscv/kvm/vcpu_timer.c > index ae53133c7ab0..0e01bd793772 100644 > --- a/arch/riscv/kvm/vcpu_timer.c > +++ b/arch/riscv/kvm/vcpu_timer.c > @@ -132,11 +132,7 @@ bool kvm_riscv_vcpu_timer_pending(struct kvm_vcpu *vcpu) > struct kvm_vcpu_timer *t = &vcpu->arch.timer; > struct kvm_guest_timer *gt = &vcpu->kvm->arch.timer; > > - if (!kvm_riscv_delta_cycles2ns(t->next_cycles, gt, t) || > - kvm_riscv_vcpu_has_interrupts(vcpu, 1UL << IRQ_VS_TIMER)) > - return true; > - else > - return false; > + return !kvm_riscv_delta_cycles2ns(t->next_cycles, gt, t); > } > > static void kvm_riscv_vcpu_timer_blocking(struct kvm_vcpu *vcpu)