s390/cpumf: Support for CPU Measurement Sampling Facility LS bit

Adds support for the CPU Measurement Sampling Facility limit sampling
bit in the sampling device driver.
Limited samples have no valueable information are not collected.

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>
This commit is contained in:
Thomas Richter 2022-01-13 12:51:56 +01:00 committed by Heiko Carstens
parent a87b0fd4f9
commit 745f5d20e7
2 changed files with 4 additions and 2 deletions

View File

@ -109,7 +109,9 @@ struct hws_basic_entry {
unsigned int AS:2; /* 29-30 PSW address-space control */ unsigned int AS:2; /* 29-30 PSW address-space control */
unsigned int I:1; /* 31 entry valid or invalid */ unsigned int I:1; /* 31 entry valid or invalid */
unsigned int CL:2; /* 32-33 Configuration Level */ unsigned int CL:2; /* 32-33 Configuration Level */
unsigned int:14; unsigned int H:1; /* 34 Host Indicator */
unsigned int LS:1; /* 35 Limited Sampling */
unsigned int:12;
unsigned int prim_asn:16; /* primary ASN */ unsigned int prim_asn:16; /* primary ASN */
unsigned long long ia; /* Instruction Address */ unsigned long long ia; /* Instruction Address */
unsigned long long gpp; /* Guest Program Parameter */ unsigned long long gpp; /* Guest Program Parameter */

View File

@ -1179,7 +1179,7 @@ static void hw_collect_samples(struct perf_event *event, unsigned long *sdbt,
sample = (struct hws_basic_entry *) *sdbt; sample = (struct hws_basic_entry *) *sdbt;
while ((unsigned long *) sample < (unsigned long *) te) { while ((unsigned long *) sample < (unsigned long *) te) {
/* Check for an empty sample */ /* Check for an empty sample */
if (!sample->def) if (!sample->def || sample->LS)
break; break;
/* Update perf event period */ /* Update perf event period */