]> www.infradead.org Git - nvme.git/commit
s390/pai: save PAI counter value page in event structure
authorThomas Richter <tmricht@linux.ibm.com>
Fri, 26 Jan 2024 12:23:35 +0000 (13:23 +0100)
committerHeiko Carstens <hca@linux.ibm.com>
Tue, 20 Feb 2024 13:37:31 +0000 (14:37 +0100)
commitfe861b0c8d0693cb65fd45b7e8c756937b5182ae
tree6b631833dca1b844e942fe10275a51cfe8743dc2
parentd065bdb4d15957fef3e115c65ab3ac34196fd7e3
s390/pai: save PAI counter value page in event structure

When the PAI events ALL_CRYPTO or ALL_NNPA are created
for system wide sampling, all PAI counters are monitored.
On each process schedule out, the values of all PAI counters
are investigated. Non-zero values are saved in the event's ring
buffer as raw data. This scheme expects the start value of each counter
to be reset to zero after each read operation performed by the PAI
PMU device driver. This allows for only one active event at any one
time as it relies on the start value of counters to be reset to zero.

Create a save area for each installed PAI XXXX_ALL event and save all
PAI counter values in this save area. Instead of clearing the
PAI counter lowcore area to zero after each read operation,
copy them from the lowcore area to the event's save area at process
schedule out time.
The delta of each PAI counter is calculated by subtracting the
old counter's value stored in the event's save area from the current
value stored in the lowcore area.

With this scheme, mulitple events of the PAI counters XXXX_ALL
can be handled at the same time. This will be addressed in a
follow-on patch.

Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
Acked-by: Sumanth Korikkar <sumanthk@linux.ibm.com>
Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
arch/s390/include/asm/pai.h
arch/s390/kernel/perf_pai_crypto.c
arch/s390/kernel/perf_pai_ext.c