[kvm-unit-tests PATCH v4 0/4] S390x: CPU Topology Information

Pierre Morel
2022-02-08T13:29:17Z

Hi,

new version of the series with corrections.

When facility 11 is available inside the S390x architecture, 2 new
instructions are available: PTF and STSI with function code 15.

Let's check their availability in QEMU/KVM and their coherence
with the CPU topology provided to the QEMU -smp parameter and as
argument for the test.

To run these tests successfully you will need both the Linux and the
QEMU patches, at least the following or newer patches:

https://lkml.org/lkml/2021/8/3/201

https://lists.nongnu.org/archive/html/qemu-s390x/2021-07/msg00165.html

Then if you have the text you can run directly the unit test or directly
start QEMU with:

# ./s390x-run s390x/topology.elf \
-smp 5,drawers=2,books=3,sockets=4,cores=4,maxcpus=96 \
-append "-d 2 -b 3 -s 4 -c 4 -m 96"

If you do not have the patches you can still use the test but only with
the first two topology levels like in:

# ./s390x-run s390x/topology.elf \
-smp 5,sockets=24,cores=4,maxcpus=96 \
-append "-s 24 -c 4 -m 96"

Of course the declaration of the number of socket and core must be
coherent.

Regards,
Pierre

Pierre Morel (4):
s390x: lib: Add SCLP toplogy nested level
s390x: stsi: Define vm_is_kvm to be used in different tests
s390x: topology: Check the Perform Topology Function
s390x: topology: Checking Configuration Topology Information

lib/s390x/sclp.c | 6 +
lib/s390x/sclp.h | 4 +-
lib/s390x/stsi.h | 76 ++++++++++
lib/s390x/vm.c | 56 ++++++-
lib/s390x/vm.h | 3 +
s390x/Makefile | 1 +
s390x/stsi.c | 23 +--
s390x/topology.c | 346 ++++++++++++++++++++++++++++++++++++++++++++
s390x/unittests.cfg | 4 +
9 files changed, 495 insertions(+), 24 deletions(-)
create mode 100644 lib/s390x/stsi.h
create mode 100644 s390x/topology.c

--
2.27.0

Changelog:

From V2:

- Copyrights modifications, assert for allocation failures
(Claudio)

- adding a vm_is_lpar and modification of vm_is_kvm
(Janosh)

- Check if the test in running in KVM
(Janosch)

- patch on "Simplify stsi_get_fc and move it to library"
pushed separatly

- replace named level with abstracted topology levels
to get rid of a possible naming controversy
(Pierre)

- Better checks and new checks for STSI(15,1,x)
(Pierre)

From V1:

- Simplify the stsi_get_fc function when pushing it into lib
(Janosch)

- Simplify PTF inline assembly as PTF instruction does not use RRE
second argument
(Claudio)

- Rename Test global name
(Claudio, Janosch)

- readibility, naming for PTF_REQ_* and removed unused globals
(Janosch)

- skipping tests which could fail when run on LPAR
(Janosh)

- Missing prefix_pop
(Janosch)