Hi Paolo and/or Thomas, quite few tests have accumulated since the last pull request, so it's time for another one. Changes in this pull request: * Pierre contributed tests for his topology work. The QEMU related changes[1] aren't merged yet, so it's mostly skips right now. Since things seem to converge in QEMU and the kernel part[2] is merged, it makes sense to include this now in kvm-unit-tests. * Pierre also contributed some fixes to the SCLP code when the size of the SCCV exceeds a page, e.g. when a certain number of vCPUs is exceeded. This also resolves an ugly loop of asserts() we can run into when SCLP fails early. * Janosch contributed enhancements for the ultravisor host interface test, which fix some bugs * Janosch also contributed more PV tests which cover certain vailidties the host can encounter when it tries to mess with the guest state, i.e. during IPL or SIE entry * Finally, two small fixes from me fix compile with GCC 13 and a change in the runtime makes sure pv-host tests are only run when the respective tooling is available. MERGE: https://gitlab.com/kvm-unit-tests/kvm-unit-tests/-/merge_requests/45 PIPELINE: https://gitlab.com/Nico-Boehr/kvm-unit-tests/-/pipelines/927485818 PULL: https://gitlab.com/Nico-Boehr/kvm-unit-tests.git s390x-2023-07 [1] https://lore.kernel.org/kvm/20230425161456.21031-1-pmorel@xxxxxxxxxxxxx/ [2] https://lore.kernel.org/kvm/20220701162559.158313-1-pmorel@xxxxxxxxxxxxx/ --- The following changes since commit e7324a48acdf3776e9bd9d727e0c2319bc5bf356: powerpc/spapr_vpa: Add basic VPA tests (2023-07-03 15:15:45 +0200) are available in the Git repository at: https://gitlab.com/Nico-Boehr/kvm-unit-tests.git s390x-2023-07 for you to fetch changes up to 6f33f0b7912953a2f8e6fde5a441dfef2d850cae: s390x: topology: Checking Configuration Topology Information (2023-07-11 13:13:36 +0200) ---------------------------------------------------------------- Janosch Frank (16): lib: s390x: sie: Fix sie_get_validity() no validity handling lib: s390x: uv: Introduce UV validity function lib: s390x: uv: Add intercept data check library function s390x: pv-diags: Drop snippet from snippet names lib: s390x: uv: Add pv host requirement check function s390x: pv: Add sie entry intercept and validity test s390x: pv: Add IPL reset tests s390x: pv-diags: Add the test to unittests.conf s390x: uv-host: Fix UV init test memory allocation s390x: uv-host: Check for sufficient amount of memory s390x: uv-host: Beautify code s390x: uv-host: Add cpu number check to test_init s390x: uv-host: Remove create guest variable storage prefix check s390x: uv-host: Properly handle config creation errors s390x: uv-host: Fence access checks when UV debug is enabled s390x: uv-host: Add the test to unittests.conf Nico Boehr (2): lib: s390x: mmu: fix conflicting types for get_dat_entry runtime: don't run pv-host tests when gen-se-header is unavailable Pierre Morel (4): s390x: sclp: treat system as single processor when read_info is NULL s390x: sclp: Implement extended-length-SCCB facility s390x: topology: Check the Perform Topology Function s390x: topology: Checking Configuration Topology Information lib/s390x/asm/uv.h | 1 + lib/s390x/mmu.h | 2 +- lib/s390x/pv_icptdata.h | 42 ++ lib/s390x/sclp.c | 23 +- lib/s390x/sclp.h | 4 +- lib/s390x/sie.c | 8 +- lib/s390x/snippet.h | 7 + lib/s390x/stsi.h | 36 ++ lib/s390x/uv.c | 20 + lib/s390x/uv.h | 8 + s390x/Makefile | 14 +- s390x/pv-diags.c | 70 ++- s390x/pv-icptcode.c | 376 +++++++++++++++ s390x/pv-ipl.c | 143 ++++++ s390x/snippets/asm/icpt-loop.S | 15 + s390x/snippets/asm/loop.S | 13 + .../asm/{snippet-pv-diag-288.S => pv-diag-288.S} | 0 s390x/snippets/asm/pv-diag-308.S | 51 ++ .../asm/{snippet-pv-diag-500.S => pv-diag-500.S} | 0 .../{snippet-pv-diag-yield.S => pv-diag-yield.S} | 0 s390x/snippets/asm/pv-icpt-112.S | 81 ++++ s390x/snippets/asm/pv-icpt-vir-timing.S | 21 + s390x/topology.c | 514 +++++++++++++++++++++ s390x/unittests.cfg | 29 ++ s390x/uv-host.c | 134 ++++-- scripts/runtime.bash | 5 + 26 files changed, 1533 insertions(+), 84 deletions(-) create mode 100644 lib/s390x/pv_icptdata.h create mode 100644 s390x/pv-icptcode.c create mode 100644 s390x/pv-ipl.c create mode 100644 s390x/snippets/asm/icpt-loop.S create mode 100644 s390x/snippets/asm/loop.S rename s390x/snippets/asm/{snippet-pv-diag-288.S => pv-diag-288.S} (100%) create mode 100644 s390x/snippets/asm/pv-diag-308.S rename s390x/snippets/asm/{snippet-pv-diag-500.S => pv-diag-500.S} (100%) rename s390x/snippets/asm/{snippet-pv-diag-yield.S => pv-diag-yield.S} (100%) create mode 100644 s390x/snippets/asm/pv-icpt-112.S create mode 100644 s390x/snippets/asm/pv-icpt-vir-timing.S create mode 100644 s390x/topology.c -- 2.41.0