LoongArch: KVM: Remove SW timer switch when vcpu is halt polling
authorBibo Mao <maobibo@loongson.cn>
Tue, 19 Dec 2023 02:48:27 +0000 (10:48 +0800)
committerHuacai Chen <chenhuacai@loongson.cn>
Tue, 19 Dec 2023 02:48:27 +0000 (10:48 +0800)
commit161267320158920a601e40d83fdac60bcaa2acb5
treeaf655a4911e55c558a123814026ad071812feffc
parent7ab6fb505b2a7447c4a7237a12c59e3ad0c7298c
LoongArch: KVM: Remove SW timer switch when vcpu is halt polling

With halt-polling supported, there is checking for pending events or
interrupts when vcpu executes idle instruction. Pending interrupts
include injected SW interrupts and passthrough HW interrupts, such as
HW timer interrupts, since HW timer works still even if vcpu exists from
VM mode.

Since HW timer pending interrupt can be set directly with CSR status
register, and pending HW timer interrupt checking is used in vcpu block
checking function, it is not necessary to switch to SW timer during
halt-polling. This patch adds preemption disabling in function
kvm_cpu_has_pending_timer(), and removes SW timer switching in idle
instruction emulation function.

Signed-off-by: Bibo Mao <maobibo@loongson.cn>
Signed-off-by: Huacai Chen <chenhuacai@loongson.cn>
arch/loongarch/kvm/exit.c
arch/loongarch/kvm/timer.c
arch/loongarch/kvm/vcpu.c