qemu/tests/tcg/s390x
Alex Bennée ecbcc9ead2 tests/tcg: add a system test to check memory instrumentation
At first I thought I could compile the user-mode test for system mode
however we already have a fairly comprehensive test case for system
mode in "memory" so lets use that.

As tracking every access will quickly build up with "print-access" we
add a new mode to track groups of reads and writes to regions. Because
the test_data is 16k aligned we can be sure all accesses to it are
ones we can count.

First we extend the test to report where the test_data region is. Then
we expand the pdot() function to track the total number of reads and
writes to the region. We have to add some addition pdot() calls to
take into account multiple reads/writes in the test loops.

Finally we add a python script to integrate the data from the plugin
and the output of the test and validate they both agree on the total
counts. As some boot codes clear the bss we also add a flag to add a
regions worth of writes to the expected total.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Message-Id: <20240916085400.1046925-14-alex.bennee@linaro.org>
2024-09-19 15:58:01 +01:00
..
gdbstub tests/tcg: Factor out gdbstub test functions 2024-01-29 20:48:49 +10:00
add-logical-with-carry.c tests/tcg/s390x: Test ADD LOGICAL WITH CARRY 2023-11-07 19:27:08 +01:00
bal.S tests/tcg/s390x: Add bal.S 2023-02-27 09:15:39 +01:00
br-odd.S tests/tcg/s390x: Test unaligned accesses 2023-03-20 09:32:50 +01:00
branch-relative-long.c tests/tcg/s390x: Use a different PCRel32 notation in branch-relative-long.c 2022-05-04 08:47:19 +02:00
cdsg.c tests/tcg/s390x: Add cdsg.c 2023-02-04 06:19:42 -10:00
cgebra.c tests/tcg/s390x: Test CLGEBR and CGEBRA 2023-07-24 18:44:47 +02:00
cgrl-unaligned.S tests/tcg/s390x: Test unaligned accesses 2023-03-20 09:32:50 +01:00
chrl.c tests/tcg/s390x: Add C(G)HRL test 2023-03-13 09:23:42 +01:00
cksm.S tests/tcg/s390x: Test CKSM 2023-07-24 18:44:47 +02:00
clc.c tests/tcg/s390x: Test CLC with inaccessible second operand 2023-11-07 19:27:08 +01:00
clgebr.c tests/tcg/s390x: Test CLGEBR and CGEBRA 2023-07-24 18:44:47 +02:00
clm.S tests/tcg/s390x: Test CLM 2023-07-24 18:44:47 +02:00
clrl-unaligned.S tests/tcg/s390x: Test unaligned accesses 2023-03-20 09:32:50 +01:00
clst.c tests/tcg/s390x: Add clst.c 2023-02-04 06:19:42 -10:00
console.c tests/tcg/s390x: Enable the multiarch system tests 2023-05-16 09:14:18 +02:00
crl-unaligned.S tests/tcg/s390x: Test unaligned accesses 2023-03-20 09:32:50 +01:00
csst.c tests/tcg/s390x: Fix alignment of csst parameter list 2019-06-21 15:26:53 +02:00
cvb.c tests/tcg/s390x: Test CONVERT TO BINARY 2024-02-06 09:51:37 +01:00
cvd.c tests/tcg/s390x: Test CONVERT TO DECIMAL 2024-02-06 09:51:37 +01:00
div.c target/s390x: Use a single return for helper_divs64/u64 2023-02-04 06:19:42 -10:00
epsw.c tests/tcg/s390x: Test EPSW 2023-07-10 15:34:24 +02:00
ex-branch.c tests/tcg/s390x: Test EXECUTE of relative branches 2023-05-16 09:14:18 +02:00
ex-odd.S tests/tcg/s390x: Test unaligned accesses 2023-03-20 09:32:50 +01:00
ex-relative-long.c tests/tcg/s390x: Add ex-relative-long.c 2023-03-20 09:32:50 +01:00
exrl-ssm-early.S tests/tcg/s390x: Add PSW modification tests 2023-03-20 09:32:50 +01:00
exrl-trt.c tests/tcg/s390x: Fix the exrl-trt* tests with Clang 2022-03-07 09:06:32 +01:00
exrl-trtr.c tests/tcg/s390x: Fix the exrl-trt* tests with Clang 2022-03-07 09:06:32 +01:00
head64.S pc-bios/s390-ccw: Move the stack array into start.S 2023-06-29 20:45:12 +02:00
hello-s390x-asm.S tests/tcg/s390x: Fix test-svc with clang 2023-07-10 15:34:57 +02:00
hello-s390x.c
icm.S tests/tcg/s390x: Test ICM 2023-07-24 18:44:47 +02:00
ipm.c target/s390x: fix IPM polluting irrelevant bits 2018-08-28 17:37:01 +02:00
laalg.c tests/tcg/s390x: Test LAALG with negative cc_src 2023-11-07 19:27:08 +01:00
lae.c tests/tcg/s390x: Test LOAD ADDRESS EXTENDED 2024-01-11 14:13:07 +01:00
larl.c tests/tcg/s390x: Test LARL with a large offset 2023-07-10 15:34:24 +02:00
lcbb.c tests/tcg/s390x: Test LCBB 2023-06-05 07:27:23 +02:00
lgrl-unaligned.S tests/tcg/s390x: Test unaligned accesses 2023-03-20 09:32:50 +01:00
llgfrl-unaligned.S tests/tcg/s390x: Test unaligned accesses 2023-03-20 09:32:50 +01:00
locfhr.c tests/tcg/s390x: Test LOCFHR 2023-06-05 07:27:23 +02:00
long-double.c tests/tcg/s390x: Add long-double.c 2023-02-04 06:19:42 -10:00
lpsw.S tests/tcg/s390x: Add PSW modification tests 2023-03-20 09:32:50 +01:00
lpswe-early.S tests/tcg/s390x: Add PSW modification tests 2023-03-20 09:32:50 +01:00
lpswe-unaligned.S tests/tcg/s390x: Test unaligned accesses 2023-03-20 09:32:50 +01:00
lra.S tests/tcg/s390x: Test LRA 2023-07-10 15:34:24 +02:00
lrl-unaligned.S tests/tcg/s390x: Test unaligned accesses 2023-03-20 09:32:50 +01:00
Makefile.softmmu-target tests/tcg: add a system test to check memory instrumentation 2024-09-19 15:58:01 +01:00
Makefile.target tests/tcg/s390x: Test TEST AND SET 2024-03-25 15:05:59 +01:00
mc.S tests/tcg/s390x: Test MC 2023-07-24 18:44:47 +02:00
mdeb.c tests/tcg/s390x: Test MDEB and MDEBR 2023-07-10 15:34:24 +02:00
mie3-compl.c tests/tcg/s390x: Tests for Miscellaneous-Instruction-Extensions Facility 3 2022-02-28 11:29:15 +01:00
mie3-mvcrl.c tests/tcg/s390x: Test MVCRL with a large value in R0 2023-07-10 15:34:24 +02:00
mie3-sel.c tests/tcg/s390x: Cleanup of mie3 tests. 2022-03-07 09:44:07 +01:00
mvc.c s390x: spelling fixes 2023-07-25 17:13:45 +03:00
mvo.c tests/tcg/s390x: Fix mvc, mvo and pack tests with Clang 2022-03-07 09:04:42 +01:00
mxdb.c tests/tcg/s390x: Test MXDB and MXDBR 2023-06-05 09:48:29 +02:00
noexec.c target/s390x: Make translator stop before the end of a page 2022-09-06 08:04:26 +01:00
pack.c tests/tcg/s390x: Fix mvc, mvo and pack tests with Clang 2022-03-07 09:04:42 +01:00
per.S tests/tcg/s390x: Add per.S 2024-05-29 12:41:56 +02:00
pgm-specification-softmmu.S tcg: Correct invalid mentions of 'softmmu' by 'system-mode' 2023-10-07 19:02:33 +02:00
pgm-specification-user.c tests/tcg/s390x: Test unaligned accesses 2023-03-20 09:32:50 +01:00
pgm-specification.mak tcg: Correct invalid mentions of 'softmmu' by 'system-mode' 2023-10-07 19:02:33 +02:00
precise-smc-softmmu.S tests/tcg/s390x: Test precise self-modifying code handling 2023-08-31 19:10:01 +02:00
precise-smc-user.c tests/tcg/s390x: Test precise self-modifying code handling 2023-08-31 19:10:01 +02:00
rxsbg.c tests/tcg/s390x: Add rxsbg.c 2023-03-20 09:32:50 +01:00
sam.S tests/tcg/s390x: Add sam.S 2023-02-27 09:15:39 +01:00
shift.c tests/tcg/s390x: Test shift instructions 2022-01-17 08:36:33 +01:00
signals-s390x.c tests/tcg/s390x: Test unwinding from signal handlers 2022-05-23 22:52:27 +02:00
softmmu.ld tcg: Correct invalid mentions of 'softmmu' by 'system-mode' 2023-10-07 19:02:33 +02:00
ssm-early.S tests/tcg/s390x: Add PSW modification tests 2023-03-20 09:32:50 +01:00
stgrl-unaligned.S tests/tcg/s390x: Test unaligned accesses 2023-03-20 09:32:50 +01:00
stosm-early.S tests/tcg/s390x: Add PSW modification tests 2023-03-20 09:32:50 +01:00
stpq.S tests/tcg/s390x: Test STPQ 2023-07-24 18:44:47 +02:00
strl-unaligned.S tests/tcg/s390x: Test unaligned accesses 2023-03-20 09:32:50 +01:00
trap.c tests/tcg: Test that compare-and-trap raises SIGFPE 2021-08-03 15:17:38 +02:00
ts.c tests/tcg/s390x: Test TEST AND SET 2024-03-25 15:05:59 +01:00
unaligned-lowcore.S tests/tcg/s390x: Test unaligned accesses to lowcore 2022-07-29 09:48:01 +01:00
vcksm.c tests/tcg/s390x: Test VCKSM 2023-07-24 18:44:48 +02:00
vfminmax.c tests/tcg/s390x: test signed vfmin/vfmax 2022-07-19 12:49:56 +02:00
vistr.c tests/tcg/s390x: Add a test for the vistr instruction 2022-10-28 08:34:58 +02:00
vrep.c tests/tcg/s390x: Test VREP 2023-08-23 12:06:44 +02:00
vstl.c tests/tcg/s390x: Test VSTL 2023-08-23 12:06:44 +02:00
vx.h tests/tcg/s390x: Test VCKSM 2023-07-24 18:44:48 +02:00
vxeh2_vcvt.c tests/tcg/s390x: Tests for Vector Enhancements Facility 2 2022-05-04 08:47:19 +02:00
vxeh2_vlstr.c tests/tcg/s390x: Tests for Vector Enhancements Facility 2 2022-05-04 08:47:19 +02:00
vxeh2_vs.c tests/tcg/s390x: Tests for Vector Enhancements Facility 2 2022-05-04 08:47:19 +02:00
vxeh2_vstrs.c tests/tcg/s390x: Test VSTRS 2023-08-23 12:07:30 +02:00