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

From: Huacai Chen

Date: Fri Nov 21 2025 - 09:08:34 EST


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?

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
>