[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[kvm-unit-tests PATCH 00/16] arm/arm64: Add ITS tests
From: |
Eric Auger |
Subject: |
[kvm-unit-tests PATCH 00/16] arm/arm64: Add ITS tests |
Date: |
Mon, 16 Dec 2019 15:02:19 +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 around
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]
The series can be fount at:
https://github.com/eauger/kut/tree/its-v1
Best Regards
Eric
[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/
For ITS migration testing use:
./run_tests.sh -g migration (blocks on TCG but I think it is beyond the
scope of that series)
For other ITS tests:
./run_tests.sh -g its
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 | 447 +++++++++++++++++++++++++++++++++--
arm/run | 2 +-
arm/unittests.cfg | 39 ++++
lib/arm/asm/gic-v3-its.h | 217 +++++++++++++++++
lib/arm/asm/gic-v3.h | 87 +++++++
lib/arm/asm/gic.h | 13 ++
lib/arm/gic-v3-its-cmd.c | 462 +++++++++++++++++++++++++++++++++++++
lib/arm/gic-v3-its.c | 354 ++++++++++++++++++++++++++++
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, 1745 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