[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[kvm-unit-tests PATCH v2 00/16] arm/arm64: Add ITS tests
From: |
Eric Auger |
Subject: |
[kvm-unit-tests PATCH v2 00/16] arm/arm64: Add ITS tests |
Date: |
Fri, 10 Jan 2020 15:53:56 +0100 |
This series is a revival of an RFC series sent in Dec 2016 [1].
Given the amount of code and the lack of traction at that time,
I haven't respinned until now. However a recent bug found related
to the ITS migration convinced me that this work may deserve to be
respinned and enhanced.
Tests exercise main ITS commands and also test migration.
With the migration framework, we are able to trigger the
migration from guest and that is very practical actually.
What is particular with the ITS programming is that most of
the commands are passed through queues and there is real error
handling. Invalid commands are just ignored and that is not
really tester friendly.
This series includes Andre's patch: "arm: gic: Provide
per-IRQ helper functions" [2]
test_migrate_unmapped_collection is currently failing with
upstream kernel. See [3].
The series can be fount at:
https://github.com/eauger/kut/tree/its-v2
Best Regards
Eric
History:
v1 -> v2:
- took into account Zenghui's comments
- collect R-b's from Thomas
References:
[1] [kvm-unit-tests RFC 00/15] arm/arm64: add ITS framework
https://lists.gnu.org/archive/html/qemu-devel/2016-12/msg00575.html
[2] [kvm-unit-tests PATCH 00/17] arm: gic: Test SPIs and interrupt groups
https://patchwork.kernel.org/cover/11234975/
[3] [PATCH] KVM: arm/arm64: vgic-its: Fix restoration of unmappedxi
collections (https://lkml.org/lkml/2019/12/13/205)
Execution:
x For ITS migration testing use:
./run_tests.sh -g migration (blocks on TCG)
x For other ITS tests:
./run_tests.sh -g its
x non migration tests can be launched invidually. For instance:
./arm-run arm/gic.flat -smp 8 -append 'its-trigger'
Andre Przywara (1):
arm: gic: Provide per-IRQ helper functions
Eric Auger (15):
libcflat: Add other size defines
arm/arm64: gic: Introduce setup_irq() helper
arm/arm64: gicv3: Add some re-distributor defines
arm/arm64: ITS: Introspection tests
arm/arm64: ITS: Test BASER
arm/arm64: ITS: Set the LPI config and pending tables
arm/arm64: ITS: Init the command queue
arm/arm64: ITS: Enable/Disable LPIs at re-distributor level
arm/arm64: ITS: its_enable_defaults
arm/arm64: ITS: Device and collection Initialization
arm/arm64: ITS: commands
arm/arm64: ITS: INT functional tests
arm/run: Allow Migration tests
arm/arm64: ITS: migration tests
arm/arm64: ITS: pending table migration test
arm/Makefile.common | 3 +-
arm/gic.c | 446 ++++++++++++++++++++++++++++++++++--
arm/run | 2 +-
arm/unittests.cfg | 39 ++++
lib/arm/asm/gic-v3-its.h | 177 +++++++++++++++
lib/arm/asm/gic-v3.h | 20 ++
lib/arm/asm/gic.h | 12 +
lib/arm/gic-v3-its-cmd.c | 453 +++++++++++++++++++++++++++++++++++++
lib/arm/gic-v3-its.c | 327 ++++++++++++++++++++++++++
lib/arm/gic.c | 132 ++++++++++-
lib/arm/io.c | 13 ++
lib/arm64/asm/gic-v3-its.h | 1 +
lib/libcflat.h | 3 +
13 files changed, 1600 insertions(+), 28 deletions(-)
create mode 100644 lib/arm/asm/gic-v3-its.h
create mode 100644 lib/arm/gic-v3-its-cmd.c
create mode 100644 lib/arm/gic-v3-its.c
create mode 100644 lib/arm64/asm/gic-v3-its.h
--
2.20.1
- [kvm-unit-tests PATCH v2 00/16] arm/arm64: Add ITS tests,
Eric Auger <=
- [kvm-unit-tests PATCH v2 01/16] libcflat: Add other size defines, Eric Auger, 2020/01/10
- [kvm-unit-tests PATCH v2 02/16] arm: gic: Provide per-IRQ helper functions, Eric Auger, 2020/01/10
- [kvm-unit-tests PATCH v2 03/16] arm/arm64: gic: Introduce setup_irq() helper, Eric Auger, 2020/01/10
- [kvm-unit-tests PATCH v2 04/16] arm/arm64: gicv3: Add some re-distributor defines, Eric Auger, 2020/01/10
- [kvm-unit-tests PATCH v2 05/16] arm/arm64: ITS: Introspection tests, Eric Auger, 2020/01/10
- [kvm-unit-tests PATCH v2 06/16] arm/arm64: ITS: Test BASER, Eric Auger, 2020/01/10