perf list: Remove s390 specific strcmp_cpuid_cmp function
Make the type field in pmu-events/arch/s390/mapfile.cvs more generic to match the created cpuid string for s390. The pattern also checks for the counter first version number and counter second version number ([13]\.[1-5]) and the authorization field which follows. These numbers do not exist in the cpuid identification string when perf commands are executed on a z/VM environment (which does not support CPU counter measurement facility). CPUID string for LPAR: cpuid : IBM,3906,704,M03,3.5,002f CPUID string for z/VM: cpuid : IBM,2964,702,N96 This allows the removal of s390 specific cpuid compare code and uses the common compare function with its regular expression matching algorithm. Signed-off-by: Thomas Richter <tmricht@linux.ibm.com> Reviewed-by: Hendrik Brueckner <brueckner@linux.ibm.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Link: http://lkml.kernel.org/r/20180423081745.3672-1-tmricht@linux.ibm.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
parent
ee05d21791
commit
ce04abfbd3
|
@ -146,21 +146,3 @@ char *get_cpuid_str(struct perf_pmu *pmu __maybe_unused)
|
||||||
zfree(&buf);
|
zfree(&buf);
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Compare the cpuid string returned by get_cpuid() function
|
|
||||||
* with the name generated by the jevents file read from
|
|
||||||
* pmu-events/arch/s390/mapfile.csv.
|
|
||||||
*
|
|
||||||
* Parameter mapcpuid is the cpuid as stored in the
|
|
||||||
* pmu-events/arch/s390/mapfile.csv. This is just the type number.
|
|
||||||
* Parameter cpuid is the cpuid returned by function get_cpuid().
|
|
||||||
*/
|
|
||||||
int strcmp_cpuid_str(const char *mapcpuid, const char *cpuid)
|
|
||||||
{
|
|
||||||
char *cp = strchr(cpuid, ',');
|
|
||||||
|
|
||||||
if (cp == NULL)
|
|
||||||
return -1;
|
|
||||||
return strncmp(cp + 1, mapcpuid, strlen(mapcpuid));
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Family-model,Version,Filename,EventType
|
Family-model,Version,Filename,EventType
|
||||||
209[78],1,cf_z10,core
|
^IBM.209[78].*[13]\.[1-5].[[:xdigit:]]+$,1,cf_z10,core
|
||||||
281[78],1,cf_z196,core
|
^IBM.281[78].*[13]\.[1-5].[[:xdigit:]]+$,1,cf_z196,core
|
||||||
282[78],1,cf_zec12,core
|
^IBM.282[78].*[13]\.[1-5].[[:xdigit:]]+$,1,cf_zec12,core
|
||||||
296[45],1,cf_z13,core
|
^IBM.296[45].*[13]\.[1-5].[[:xdigit:]]+$,1,cf_z13,core
|
||||||
3906,3,cf_z14,core
|
^IBM.390[67].*[13]\.[1-5].[[:xdigit:]]+$,3,cf_z14,core
|
||||||
|
|
|
|
@ -586,7 +586,7 @@ char * __weak get_cpuid_str(struct perf_pmu *pmu __maybe_unused)
|
||||||
* cpuid string generated on this platform.
|
* cpuid string generated on this platform.
|
||||||
* Otherwise return non-zero.
|
* Otherwise return non-zero.
|
||||||
*/
|
*/
|
||||||
int __weak strcmp_cpuid_str(const char *mapcpuid, const char *cpuid)
|
int strcmp_cpuid_str(const char *mapcpuid, const char *cpuid)
|
||||||
{
|
{
|
||||||
regex_t re;
|
regex_t re;
|
||||||
regmatch_t pmatch[1];
|
regmatch_t pmatch[1];
|
||||||
|
|
Loading…
Reference in New Issue