Re: [PATCH v3 0/6] KVM: LoongArch: selftests: Add timer test case

From: Bibo Mao

Date: Sun Nov 23 2025 - 20:58:21 EST




On 2025/11/21 下午10:08, Huacai Chen wrote:
Hi, Bibo,

On Thu, Nov 20, 2025 at 2:58 PM Bibo Mao <maobibo@xxxxxxxxxxx> wrote:

This patchset adds timer test case for LoongArch system, it is based
on common arch_timer test case. And it includes one-shot and period mode
timer interrupt test, software emulated timer function and time counter
test.
I test this series on top of 6.18-rc6 with Loongson-3A5000, sometimes
it passes, sometimes I get:
[root@fedora kvm]# ./arch_timer
Random seed: 0x6b8b4567
Guest assert failed, vcpu 2; stage; 0; iter: 1
==== Test Assertion Failure ====
loongarch/arch_timer.c:79: irq_iter == 0
pid=60138 tid=60142 errno=4 - Interrupted system call
1 0x00000001200037cf: test_vcpu_run 于 arch_timer.c:70
2 0x00007ffff2449f27: ?? ??:0
3 0x00007ffff24c0633: ?? ??:0
irq_iter = 0x1.
Guest period timer interrupt was not triggered within the specified
interval, try to increase the error margin by [-e] option.

Is this as expected, or something is wrong?
There is problem with that. In generic the vCPU task is rescheduled on other CPUs or preempted, so period timer interrupt is not handled in specified time.

Regards
Bibo Mao

Hucai

---
v2 ... v3:
1. Adjust order about patch 2 and patch 3
2. Add test case with alphabetical order
3. Merge one-shot and period timer interrupt test case into one
4. Only add LoongArch specific modification with common file
Makefile.kvm

v1 ... v2:
1. Restore PC and PRMD after exception handler
2. Split patch 4 into two small patches with period timer test and
time counter test
3. With time counter test, set time count with 0 when create VM. And
verify time count starts from 0 in guest code
---
Bibo Mao (6):
KVM: LoongArch: selftests: Add system registers save and restore on
exception
KVM: LoongArch: selftests: Add basic interfaces
KVM: LoongArch: selftests: Add exception handler register interface
KVM: LoongArch: selftests: Add timer interrupt test case
KVM: LoongArch: selftests: Add SW emulated timer test
KVM: LoongArch: selftests: Add time counter test

tools/testing/selftests/kvm/Makefile.kvm | 1 +
.../kvm/include/loongarch/arch_timer.h | 84 ++++++++
.../kvm/include/loongarch/processor.h | 81 +++++++-
.../selftests/kvm/lib/loongarch/exception.S | 6 +
.../selftests/kvm/lib/loongarch/processor.c | 47 ++++-
.../selftests/kvm/loongarch/arch_timer.c | 194 ++++++++++++++++++
6 files changed, 410 insertions(+), 3 deletions(-)
create mode 100644 tools/testing/selftests/kvm/include/loongarch/arch_timer.h
create mode 100644 tools/testing/selftests/kvm/loongarch/arch_timer.c


base-commit: 23cb64fb76257309e396ea4cec8396d4a1dbae68
--
2.39.3