Compare commits
No commits in common. "c8" and "c9" have entirely different histories.
|
@ -1 +1 @@
|
||||||
SOURCES/libpfm-4.10.1.tar.gz
|
SOURCES/libpfm-4.13.0.tar.gz
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
78599e1668142f48c24afb1f79ca00a89df51b65 SOURCES/libpfm-4.10.1.tar.gz
|
bcb52090f02bc7bcb5ac066494cd55bbd5084e65 SOURCES/libpfm-4.13.0.tar.gz
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,56 +0,0 @@
|
||||||
commit afa8700ce726153fa1547ce118f7f9b029e675c9
|
|
||||||
Author: Stephane Eranian <eranian@gmail.com>
|
|
||||||
Date: Wed Jan 16 13:23:11 2019 -0800
|
|
||||||
|
|
||||||
clarify description of AMD Fam17h MERGE event
|
|
||||||
|
|
||||||
This is a special event used when merging two counters together.
|
|
||||||
It needs to be programmed on the od-numbered performance counter.
|
|
||||||
|
|
||||||
Signed-off-by: Stephane Eranian <eranian@gmail.com>
|
|
||||||
|
|
||||||
diff --git a/lib/events/amd64_events_fam17h.h b/lib/events/amd64_events_fam17h.h
|
|
||||||
index 4f865b9..b0db898 100644
|
|
||||||
--- a/lib/events/amd64_events_fam17h.h
|
|
||||||
+++ b/lib/events/amd64_events_fam17h.h
|
|
||||||
@@ -954,7 +954,7 @@ static const amd64_entry_t amd64_fam17h_pe[]={
|
|
||||||
.umasks = amd64_fam17h_tablewalker_allocation,
|
|
||||||
},
|
|
||||||
{ .name = "MERGE",
|
|
||||||
- .desc = "See <xref file='svd_core_pmc' title='Large Increment per Cycle Events' format='name'>.",
|
|
||||||
+ .desc = "Merge two counters together. This event must be programmed on the odd performance counter",
|
|
||||||
.modmsk = AMD64_FAM17H_ATTRS,
|
|
||||||
.code = 0xfff,
|
|
||||||
.flags = 0,
|
|
||||||
|
|
||||||
commit ac95d1957771d527f7bf8d11a97fb10ee223d6c0
|
|
||||||
Author: Stephane Eranian <eranian@gmail.com>
|
|
||||||
Date: Thu Mar 14 15:19:13 2019 -0700
|
|
||||||
|
|
||||||
remove MERGE event from AMD Fam17h table
|
|
||||||
|
|
||||||
The MERGE event is not measuring an actual micro-architectural event. Instead
|
|
||||||
it is used to fuse two consecutive counters together to get a wider counter.
|
|
||||||
This should be used cautiously and is not currently compatible with Linux
|
|
||||||
perf_events interface and implementation.
|
|
||||||
|
|
||||||
Signed-off-by: Stephane Eranian <eranian@gmail.com>
|
|
||||||
|
|
||||||
diff --git a/lib/events/amd64_events_fam17h.h b/lib/events/amd64_events_fam17h.h
|
|
||||||
index b0db898..deadbed 100644
|
|
||||||
--- a/lib/events/amd64_events_fam17h.h
|
|
||||||
+++ b/lib/events/amd64_events_fam17h.h
|
|
||||||
@@ -953,13 +953,6 @@ static const amd64_entry_t amd64_fam17h_pe[]={
|
|
||||||
.numasks = LIBPFM_ARRAY_SIZE(amd64_fam17h_tablewalker_allocation),
|
|
||||||
.umasks = amd64_fam17h_tablewalker_allocation,
|
|
||||||
},
|
|
||||||
- { .name = "MERGE",
|
|
||||||
- .desc = "Merge two counters together. This event must be programmed on the odd performance counter",
|
|
||||||
- .modmsk = AMD64_FAM17H_ATTRS,
|
|
||||||
- .code = 0xfff,
|
|
||||||
- .flags = 0,
|
|
||||||
- .ngrp = 0,
|
|
||||||
- },
|
|
||||||
{ .name = "L1_BTB_CORRECTION",
|
|
||||||
.desc = "TBD",
|
|
||||||
.modmsk = AMD64_FAM17H_ATTRS,
|
|
|
@ -1,184 +0,0 @@
|
||||||
commit 20bd642e0ebc2c1d29e39417ee4665271df43d93
|
|
||||||
Author: Stephane Eranian <eranian@gmail.com>
|
|
||||||
Date: Thu Nov 7 10:47:02 2019 -0800
|
|
||||||
|
|
||||||
add support for speculation event information
|
|
||||||
|
|
||||||
This patch extends the information returned by get_event_info()
|
|
||||||
with speculation information. Some events can include occurrences
|
|
||||||
happening during speculative execution. This is important information
|
|
||||||
because it impacts the cost associated with such event. The
|
|
||||||
pfm_event_info_t struct is extended with a 2-bit field describing
|
|
||||||
whether or not the event counts during speculation.
|
|
||||||
|
|
||||||
Given that the speculation information is not always available from
|
|
||||||
hardware vendors, the field can have 3 values:
|
|
||||||
- PFM_EVENT_SPEC_INFO_NA: no information available (default)
|
|
||||||
- PFM_EVENT_INFO_SPEC_TRUE: event includes speculative execution
|
|
||||||
- PFM_EVENT_INFO_SPEC_FALSE: evnet does not include speculative execution
|
|
||||||
|
|
||||||
Signed-off-by: Stephane Eranian <eranian@gmail.com>
|
|
||||||
|
|
||||||
diff --git a/docs/man3/pfm_get_event_info.3 b/docs/man3/pfm_get_event_info.3
|
|
||||||
index 7eaa6cf..a8c7546 100644
|
|
||||||
--- a/docs/man3/pfm_get_event_info.3
|
|
||||||
+++ b/docs/man3/pfm_get_event_info.3
|
|
||||||
@@ -85,6 +85,16 @@ field means that at least one umask supports precise sampling. On Intel X86
|
|
||||||
processors, this indicates whether the event supports Precise Event-Based
|
|
||||||
Sampling (PEBS).
|
|
||||||
.PP
|
|
||||||
+.TP
|
|
||||||
+.B is_speculative
|
|
||||||
+This bitfield indicates whether or not the event includes occurrences happening
|
|
||||||
+during speculative execution for both wrong and correct path. Given that this
|
|
||||||
+kind of event information is not always available from vendors, this field uses
|
|
||||||
+multiple bits. A value of \fBPFM_EVENT_INFO_SPEC_NA\fR indicates that speculation
|
|
||||||
+information is not available. A value of \fBPFM_EVENT_INFO_SPEC_TRUE\fR indicates
|
|
||||||
+that the event count during speculative execution. A value of \fBPFM_EVENT_INFO_SPEC_FALS\fR
|
|
||||||
+indicates that the event does not count during speculative execution.
|
|
||||||
+.PP
|
|
||||||
|
|
||||||
The \fBpfm_os_t\fR enumeration provides the following choices:
|
|
||||||
.TP
|
|
||||||
diff --git a/examples/showevtinfo.c b/examples/showevtinfo.c
|
|
||||||
index 40966ac..44e958e 100644
|
|
||||||
--- a/examples/showevtinfo.c
|
|
||||||
+++ b/examples/showevtinfo.c
|
|
||||||
@@ -376,11 +376,16 @@ static void
|
|
||||||
print_event_flags(pfm_event_info_t *info)
|
|
||||||
{
|
|
||||||
int n = 0;
|
|
||||||
+ int spec = info->is_speculative;
|
|
||||||
|
|
||||||
if (info->is_precise) {
|
|
||||||
printf("[precise] ");
|
|
||||||
n++;
|
|
||||||
}
|
|
||||||
+ if (spec > PFM_EVENT_INFO_SPEC_NA) {
|
|
||||||
+ printf("[%s] ", spec == PFM_EVENT_INFO_SPEC_TRUE ? "speculative" : "non-speculative");
|
|
||||||
+ n++;
|
|
||||||
+ }
|
|
||||||
if (!n)
|
|
||||||
printf("None");
|
|
||||||
}
|
|
||||||
diff --git a/include/perfmon/pfmlib.h b/include/perfmon/pfmlib.h
|
|
||||||
index bd6f935..09c673d 100644
|
|
||||||
--- a/include/perfmon/pfmlib.h
|
|
||||||
+++ b/include/perfmon/pfmlib.h
|
|
||||||
@@ -645,6 +645,12 @@ typedef struct {
|
|
||||||
} SWIG_NAME(flags);
|
|
||||||
} pfm_pmu_info_t;
|
|
||||||
|
|
||||||
+typedef enum {
|
|
||||||
+ PFM_EVENT_INFO_SPEC_NA = 0,
|
|
||||||
+ PFM_EVENT_INFO_SPEC_TRUE = 1,
|
|
||||||
+ PFM_EVENT_INFO_SPEC_FALSE = 2,
|
|
||||||
+} pfm_event_info_spec_t;
|
|
||||||
+
|
|
||||||
typedef struct {
|
|
||||||
const char *name; /* event name */
|
|
||||||
const char *desc; /* event description */
|
|
||||||
@@ -657,8 +663,9 @@ typedef struct {
|
|
||||||
int nattrs; /* number of attributes */
|
|
||||||
int reserved; /* for future use */
|
|
||||||
struct {
|
|
||||||
- unsigned int is_precise:1; /* precise sampling (Intel X86=PEBS) */
|
|
||||||
- unsigned int reserved_bits:31;
|
|
||||||
+ unsigned int is_precise:1; /* precise sampling (Intel X86=PEBS) */
|
|
||||||
+ unsigned int is_speculative:2;/* count correct and wrong path occurrences */
|
|
||||||
+ unsigned int reserved_bits:29;
|
|
||||||
} SWIG_NAME(flags);
|
|
||||||
} pfm_event_info_t;
|
|
||||||
|
|
||||||
diff --git a/lib/pfmlib_common.c b/lib/pfmlib_common.c
|
|
||||||
index 688edb6..2b6cbb4 100644
|
|
||||||
--- a/lib/pfmlib_common.c
|
|
||||||
+++ b/lib/pfmlib_common.c
|
|
||||||
@@ -1951,7 +1951,8 @@ pfm_get_event_info(int idx, pfm_os_t os, pfm_event_info_t *uinfo)
|
|
||||||
info.dtype = PFM_DTYPE_UINT64;
|
|
||||||
|
|
||||||
/* reset flags */
|
|
||||||
- info.is_precise = 0;
|
|
||||||
+ info.is_precise = 0;
|
|
||||||
+ info.is_speculative = PFM_EVENT_INFO_SPEC_NA;
|
|
||||||
|
|
||||||
ret = pmu->get_event_info(pmu, pidx, &info);
|
|
||||||
if (ret != PFM_SUCCESS)
|
|
||||||
diff --git a/lib/pfmlib_priv.h b/lib/pfmlib_priv.h
|
|
||||||
index fe13351..b0070a6 100644
|
|
||||||
--- a/lib/pfmlib_priv.h
|
|
||||||
+++ b/lib/pfmlib_priv.h
|
|
||||||
@@ -186,6 +186,7 @@ typedef struct {
|
|
||||||
#define PFMLIB_PMU_FL_RAW_UMASK 0x4 /* PMU supports PFM_ATTR_RAW_UMASKS */
|
|
||||||
#define PFMLIB_PMU_FL_ARCH_DFL 0x8 /* PMU is arch default */
|
|
||||||
#define PFMLIB_PMU_FL_NO_SMPL 0x10 /* PMU does not support sampling */
|
|
||||||
+#define PFMLIB_PMU_FL_SPEC 0x20 /* PMU provides event speculation info */
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int initdone;
|
|
||||||
commit fb31170eab2d62d6cb182f14df3a6d8e065303d2
|
|
||||||
Author: Stephane Eranian <eranian@google.com>
|
|
||||||
Date: Thu Dec 19 16:13:16 2019 -0800
|
|
||||||
|
|
||||||
add PFMLIB_PMU_FL_DEPR flag
|
|
||||||
|
|
||||||
To mark a PMU model as deprecated. This is useful when a PMU model
|
|
||||||
is superseded by another one, yet the obsolete model must remain
|
|
||||||
for backward compatibility reason.
|
|
||||||
|
|
||||||
The ensures that a fully qualified event string with the old pmu
|
|
||||||
name will still be accepted. But when running on the matching
|
|
||||||
CPU model, the new PMU model will be selected by default when
|
|
||||||
the pmu model name is not specified.
|
|
||||||
|
|
||||||
Example: when running on pmu_old PMU model:
|
|
||||||
- pmu_old::cycles is still accepted
|
|
||||||
- pmu_new::cycles is accepted
|
|
||||||
- cycles is mapped to pmu_new::cycles
|
|
||||||
|
|
||||||
Signed-off-by: Stephane Eranian <eranian@gmail.com>
|
|
||||||
|
|
||||||
diff --git a/lib/pfmlib_common.c b/lib/pfmlib_common.c
|
|
||||||
index 8cb8998..31d16e9 100644
|
|
||||||
--- a/lib/pfmlib_common.c
|
|
||||||
+++ b/lib/pfmlib_common.c
|
|
||||||
@@ -712,6 +712,12 @@ pfmlib_pmu_active(pfmlib_pmu_t *pmu)
|
|
||||||
return !!(pmu->flags & PFMLIB_PMU_FL_ACTIVE);
|
|
||||||
}
|
|
||||||
|
|
||||||
+static inline int
|
|
||||||
+pfmlib_pmu_deprecated(pfmlib_pmu_t *pmu)
|
|
||||||
+{
|
|
||||||
+ return !!(pmu->flags & PFMLIB_PMU_FL_DEPR);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
static inline int
|
|
||||||
pfmlib_pmu_initialized(pfmlib_pmu_t *pmu)
|
|
||||||
{
|
|
||||||
@@ -1495,6 +1501,14 @@ pfmlib_parse_event(const char *event, pfmlib_event_desc_t *d)
|
|
||||||
*/
|
|
||||||
if (!pname && !pfmlib_pmu_active(pmu))
|
|
||||||
continue;
|
|
||||||
+
|
|
||||||
+ /*
|
|
||||||
+ * if the PMU name is not passed, then if
|
|
||||||
+ * the pmu is deprecated, then skip it. It means
|
|
||||||
+ * there is a better candidate in the active list
|
|
||||||
+ */
|
|
||||||
+ if (!pname && pfmlib_pmu_deprecated(pmu))
|
|
||||||
+ continue;
|
|
||||||
/*
|
|
||||||
* check for requested PMU name,
|
|
||||||
*/
|
|
||||||
diff --git a/lib/pfmlib_priv.h b/lib/pfmlib_priv.h
|
|
||||||
index 1340a6b..5cddc9c 100644
|
|
||||||
--- a/lib/pfmlib_priv.h
|
|
||||||
+++ b/lib/pfmlib_priv.h
|
|
||||||
@@ -187,6 +187,7 @@ typedef struct {
|
|
||||||
#define PFMLIB_PMU_FL_ARCH_DFL 0x8 /* PMU is arch default */
|
|
||||||
#define PFMLIB_PMU_FL_NO_SMPL 0x10 /* PMU does not support sampling */
|
|
||||||
#define PFMLIB_PMU_FL_SPEC 0x20 /* PMU provides event speculation info */
|
|
||||||
+#define PFMLIB_PMU_FL_DEPR 0x40 /* PMU model is deprecated */
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
int initdone;
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
commit 75d8bb06f6ea0d7a8edf8e080c7ea6d434d598ff
|
||||||
|
Author: William Cohen <wcohen@redhat.com>
|
||||||
|
Date: Fri Apr 14 16:07:07 2023 -0400
|
||||||
|
|
||||||
|
Make sure that p is set to a known value before using.
|
||||||
|
|
||||||
|
diff --git a/lib/pfmlib_perf_event_pmu.c b/lib/pfmlib_perf_event_pmu.c
|
||||||
|
index 637c5b1..8f7d7d1 100644
|
||||||
|
--- a/lib/pfmlib_perf_event_pmu.c
|
||||||
|
+++ b/lib/pfmlib_perf_event_pmu.c
|
||||||
|
@@ -361,7 +361,7 @@ gen_tracepoint_table(void)
|
||||||
|
{
|
||||||
|
DIR *dir1, *dir2;
|
||||||
|
struct dirent *d1, *d2;
|
||||||
|
- perf_event_t *p;
|
||||||
|
+ perf_event_t *p = NULL;
|
||||||
|
perf_umask_t *um;
|
||||||
|
char d2path[MAXPATHLEN];
|
||||||
|
char idpath[MAXPATHLEN];
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,29 @@
|
||||||
|
commit 1befa3d200cc17d5a278fcb2f597c4876c58f949
|
||||||
|
Author: Stephane Eranian <eranian@gmail.com>
|
||||||
|
Date: Tue Apr 25 00:35:41 2023 -0700
|
||||||
|
|
||||||
|
fix AMD Zen3/Zen4 detection
|
||||||
|
|
||||||
|
To cover more models of Zen4.
|
||||||
|
|
||||||
|
Signed-off-by: Stephane Eranian <eranian@gmail.com>
|
||||||
|
|
||||||
|
diff --git a/lib/pfmlib_amd64.c b/lib/pfmlib_amd64.c
|
||||||
|
index e51a43d..0c6702d 100644
|
||||||
|
--- a/lib/pfmlib_amd64.c
|
||||||
|
+++ b/lib/pfmlib_amd64.c
|
||||||
|
@@ -181,10 +181,10 @@ amd64_get_revision(pfm_amd64_config_t *cfg)
|
||||||
|
} else if (cfg->family == 22) { /* family 16h */
|
||||||
|
rev = PFM_PMU_AMD64_FAM16H;
|
||||||
|
} else if (cfg->family == 25) { /* family 19h */
|
||||||
|
- if (cfg->model <= 0x0f || (cfg->model >= 0x20 && cfg->model <= 0x5f)) {
|
||||||
|
- rev = PFM_PMU_AMD64_FAM19H_ZEN3;
|
||||||
|
- } else if (cfg->model == 17) {
|
||||||
|
- rev = PFM_PMU_AMD64_FAM19H_ZEN4;
|
||||||
|
+ if (cfg->model >= 0x60 || (cfg->model >= 0x10 && cfg->model <= 0x1f)) {
|
||||||
|
+ rev = PFM_PMU_AMD64_FAM19H_ZEN4;
|
||||||
|
+ } else {
|
||||||
|
+ rev = PFM_PMU_AMD64_FAM19H_ZEN3;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -1,128 +0,0 @@
|
||||||
commit dc643f4a460063a628b4bfba57dbbb36673a0789
|
|
||||||
Author: Thomas Richter <tmricht@linux.ibm.com>
|
|
||||||
Date: Thu Jul 11 17:48:03 2019 -0700
|
|
||||||
|
|
||||||
s390/cpumf: add IBM z14 ZR1 support
|
|
||||||
|
|
||||||
Add support for machine type 0x3907.
|
|
||||||
|
|
||||||
Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
|
|
||||||
|
|
||||||
diff --git a/lib/pfmlib_s390x_cpumf.c b/lib/pfmlib_s390x_cpumf.c
|
|
||||||
index 4e03fc4..7566aa0 100644
|
|
||||||
--- a/lib/pfmlib_s390x_cpumf.c
|
|
||||||
+++ b/lib/pfmlib_s390x_cpumf.c
|
|
||||||
@@ -192,6 +192,7 @@ static int pfm_cpumcf_init(void *this)
|
|
||||||
ext_set_count = LIBPFM_ARRAY_SIZE(cpumcf_z13_counters);
|
|
||||||
break;
|
|
||||||
case 3906: /* IBM z14 */
|
|
||||||
+ case 3907: /* IBM z14 ZR1 */
|
|
||||||
ext_set = cpumcf_z14_counters;
|
|
||||||
ext_set_count = LIBPFM_ARRAY_SIZE(cpumcf_z14_counters);
|
|
||||||
break;
|
|
||||||
commit c08003fb085e23f2229e58cc176fcfcf58a3b238
|
|
||||||
Author: Thomas Richter <tmricht@linux.ibm.com>
|
|
||||||
Date: Thu Jul 11 17:49:42 2019 -0700
|
|
||||||
|
|
||||||
s390/cpumf: add support for counter second version number 6
|
|
||||||
|
|
||||||
IBM added secound version number 6 in the CPU Measurement
|
|
||||||
Counter facility to indicate additional counters in the
|
|
||||||
crypto counter set.
|
|
||||||
|
|
||||||
Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
|
|
||||||
|
|
||||||
diff --git a/lib/events/s390x_cpumf_events.h b/lib/events/s390x_cpumf_events.h
|
|
||||||
index 8be1d55..8587a3b 100644
|
|
||||||
--- a/lib/events/s390x_cpumf_events.h
|
|
||||||
+++ b/lib/events/s390x_cpumf_events.h
|
|
||||||
@@ -13,6 +13,8 @@
|
|
||||||
#define CPUMF_CTRSET_EXTENDED 1
|
|
||||||
#define CPUMF_CTRSET_MT_DIAG 32
|
|
||||||
|
|
||||||
+#define CPUMF_SVN6_ECC 4
|
|
||||||
+
|
|
||||||
|
|
||||||
static const pme_cpumf_ctr_t cpumcf_fvn1_counters[] = {
|
|
||||||
{
|
|
||||||
@@ -270,6 +272,43 @@ static const pme_cpumf_ctr_t cpumcf_svn_generic_counters[] = {
|
|
||||||
" coprocessor is busy performing a function issued by"
|
|
||||||
" another CPU",
|
|
||||||
},
|
|
||||||
+ {
|
|
||||||
+ .ctrnum = 80,
|
|
||||||
+ .ctrset = CPUMF_CTRSET_CRYPTO,
|
|
||||||
+ .name = "ECC_FUNCTION_COUNT",
|
|
||||||
+ .desc = "This counter counts the"
|
|
||||||
+ " total number of the elliptic-curve cryptography (ECC)"
|
|
||||||
+ " functions issued by the CPU.",
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ .ctrnum = 81,
|
|
||||||
+ .ctrset = CPUMF_CTRSET_CRYPTO,
|
|
||||||
+ .name = "ECC_CYCLES_COUNT",
|
|
||||||
+ .desc = "This counter counts the total"
|
|
||||||
+ " number of CPU cycles when the ECC coprocessor is"
|
|
||||||
+ " busy performing the elliptic-curve cryptography"
|
|
||||||
+ " (ECC) functions issued by the CPU.",
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ .ctrnum = 82,
|
|
||||||
+ .ctrset = CPUMF_CTRSET_CRYPTO,
|
|
||||||
+ .name = "ECC_BLOCKED_FUNCTION_COUNT",
|
|
||||||
+ .desc = "This counter counts the total number of the"
|
|
||||||
+ " elliptic-curve cryptography (ECC) functions that are"
|
|
||||||
+ " issued by the CPU and are blocked because the ECC"
|
|
||||||
+ " coprocessor is busy performing a function issued by"
|
|
||||||
+ " another CPU.",
|
|
||||||
+ },
|
|
||||||
+ {
|
|
||||||
+ .ctrnum = 83,
|
|
||||||
+ .ctrset = CPUMF_CTRSET_CRYPTO,
|
|
||||||
+ .name = "ECC_BLOCKED_CYCLES_COUNT",
|
|
||||||
+ .desc = "This counter counts the total number of CPU cycles "
|
|
||||||
+ " blocked for the elliptic-curve cryptography (ECC) "
|
|
||||||
+ " functions issued by the CPU because the ECC"
|
|
||||||
+ " coprocessor is busy perform ing a function issued"
|
|
||||||
+ " by another CPU.",
|
|
||||||
+ },
|
|
||||||
};
|
|
||||||
|
|
||||||
static const pme_cpumf_ctr_t cpumcf_z10_counters[] = {
|
|
||||||
diff --git a/lib/pfmlib_s390x_cpumf.c b/lib/pfmlib_s390x_cpumf.c
|
|
||||||
index 7566aa0..e68b000 100644
|
|
||||||
--- a/lib/pfmlib_s390x_cpumf.c
|
|
||||||
+++ b/lib/pfmlib_s390x_cpumf.c
|
|
||||||
@@ -168,6 +168,8 @@ static int pfm_cpumcf_init(void *this)
|
|
||||||
/* counters based on second version number */
|
|
||||||
csvn_set = cpumcf_svn_generic_counters;
|
|
||||||
csvn_set_count = LIBPFM_ARRAY_SIZE(cpumcf_svn_generic_counters);
|
|
||||||
+ if (csvn < 6) /* Crypto counter set enlarged for SVN == 6 */
|
|
||||||
+ csvn_set_count -= CPUMF_SVN6_ECC;
|
|
||||||
|
|
||||||
/* check and assign a machine-specific extended counter set */
|
|
||||||
switch (get_machine_type()) {
|
|
||||||
commit b831b04254ac7fd1700b20b349799810952ff66e
|
|
||||||
Author: Thomas Richter <tmricht@linux.ibm.com>
|
|
||||||
Date: Thu Jul 11 17:51:03 2019 -0700
|
|
||||||
|
|
||||||
s390/cpumf: add support for machine type 8561
|
|
||||||
|
|
||||||
Add extended counter set support for s390 machine types
|
|
||||||
8561 and 8562.
|
|
||||||
|
|
||||||
Signed-off-by: Thomas Richter <tmricht@linux.ibm.com>
|
|
||||||
|
|
||||||
diff --git a/lib/pfmlib_s390x_cpumf.c b/lib/pfmlib_s390x_cpumf.c
|
|
||||||
index e68b000..c11f9d9 100644
|
|
||||||
--- a/lib/pfmlib_s390x_cpumf.c
|
|
||||||
+++ b/lib/pfmlib_s390x_cpumf.c
|
|
||||||
@@ -195,6 +195,8 @@ static int pfm_cpumcf_init(void *this)
|
|
||||||
break;
|
|
||||||
case 3906: /* IBM z14 */
|
|
||||||
case 3907: /* IBM z14 ZR1 */
|
|
||||||
+ case 8561: /* IBM Machine types 8561 and 8562 */
|
|
||||||
+ case 8562:
|
|
||||||
ext_set = cpumcf_z14_counters;
|
|
||||||
ext_set_count = LIBPFM_ARRAY_SIZE(cpumcf_z14_counters);
|
|
||||||
break;
|
|
|
@ -1,31 +1,30 @@
|
||||||
|
# Default to no static libraries
|
||||||
|
%{!?with_static: %global with_static 1}
|
||||||
%bcond_without python
|
%bcond_without python
|
||||||
%if %{with python}
|
%if %{with python}
|
||||||
%define python_sitearch %(python3 -c "from distutils.sysconfig import get_python_lib; print (get_python_lib(1))")
|
%define python_sitearch %(python3 -c "from distutils.sysconfig import get_python_lib; print (get_python_lib(1))")
|
||||||
%define python_prefix %(python3 -c "import sys; print (sys.prefix)")
|
%define python_prefix %(python3 -c "import sys; print (sys.prefix)")
|
||||||
%{?filter_setup:
|
%{?filter_setup:
|
||||||
%filter_provides_in %{python_sitearch}/perfmon/.*\.so$
|
%filter_provides_in %{python3_sitearch}/perfmon/.*\.so$
|
||||||
%filter_setup
|
%filter_setup
|
||||||
}
|
}
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
Name: libpfm
|
Name: libpfm
|
||||||
Version: 4.10.1
|
Version: 4.13.0
|
||||||
Release: 5%{?dist}
|
Release: 4%{?dist}
|
||||||
|
|
||||||
Summary: Library to encode performance events for use by perf tool
|
Summary: Library to encode performance events for use by perf tool
|
||||||
|
|
||||||
Group: System Environment/Libraries
|
|
||||||
License: MIT
|
License: MIT
|
||||||
URL: http://perfmon2.sourceforge.net/
|
URL: http://perfmon2.sourceforge.net/
|
||||||
Source0: http://sourceforge.net/projects/perfmon2/files/libpfm4/%{name}-%{version}.tar.gz
|
Source0: http://sourceforge.net/projects/perfmon2/files/libpfm4/%{name}-%{version}.tar.gz
|
||||||
Patch2: libpfm-python3-setup.patch
|
Patch2: libpfm-python3-setup.patch
|
||||||
Patch3: libpfm-zseries.patch
|
Patch3: libpfm-initp.patch
|
||||||
Patch4: libpfm-tx2.patch
|
Patch4: libpfm-zen4.patch
|
||||||
Patch5: libpfm-a64fx.patch
|
|
||||||
Patch6: libpfm-flags.patch
|
|
||||||
Patch7: libpfm-amd_merge.patch
|
|
||||||
Patch8: libpfm-zen23.patch
|
|
||||||
|
|
||||||
|
BuildRequires: make
|
||||||
|
BuildRequires: gcc
|
||||||
%if %{with python}
|
%if %{with python}
|
||||||
BuildRequires: python3
|
BuildRequires: python3
|
||||||
BuildRequires: python3-devel
|
BuildRequires: python3-devel
|
||||||
|
@ -41,21 +40,21 @@ for the perf_events interface available in upstream Linux kernels since v2.6.31.
|
||||||
|
|
||||||
%package devel
|
%package devel
|
||||||
Summary: Development library to encode performance events for perf_events based tools
|
Summary: Development library to encode performance events for perf_events based tools
|
||||||
Group: Development/Libraries
|
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
%description devel
|
%description devel
|
||||||
Development library and header files to create performance monitoring
|
Development library and header files to create performance monitoring
|
||||||
applications for the perf_events interface.
|
applications for the perf_events interface.
|
||||||
|
|
||||||
|
%if %{with_static}
|
||||||
%package static
|
%package static
|
||||||
Summary: Static library to encode performance events for perf_events based tools
|
Summary: Static library to encode performance events for perf_events based tools
|
||||||
Group: Development/Libraries
|
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
%description static
|
%description static
|
||||||
Static version of the libpfm library for performance monitoring
|
Static version of the libpfm library for performance monitoring
|
||||||
applications for the perf_events interface.
|
applications for the perf_events interface.
|
||||||
|
%endif
|
||||||
|
|
||||||
%if %{with python}
|
%if %{with python}
|
||||||
%package -n python3-libpfm
|
%package -n python3-libpfm
|
||||||
|
@ -65,7 +64,6 @@ Provides: %{name}-python = %{version}-%{release}
|
||||||
Provides: %{name}-python%{?_isa} = %{version}-%{release}
|
Provides: %{name}-python%{?_isa} = %{version}-%{release}
|
||||||
Obsoletes: %{name}-python < %{version}-%{release}
|
Obsoletes: %{name}-python < %{version}-%{release}
|
||||||
Summary: Python bindings for libpfm and perf_event_open system call
|
Summary: Python bindings for libpfm and perf_event_open system call
|
||||||
Group: Development/Languages
|
|
||||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||||
|
|
||||||
%description -n python3-libpfm
|
%description -n python3-libpfm
|
||||||
|
@ -75,12 +73,8 @@ Python bindings for libpfm4 and perf_event_open system call.
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch2 -p1 -b .python3
|
%patch2 -p1 -b .python3
|
||||||
%patch3 -p1 -b .zseries
|
%patch3 -p1 -b .test
|
||||||
%patch4 -p1 -b .tx2
|
%patch4 -p1 -b .zen4
|
||||||
%patch5 -p1 -b .a64fx
|
|
||||||
%patch6 -p1
|
|
||||||
%patch7 -p1
|
|
||||||
%patch8 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %{with python}
|
%if %{with python}
|
||||||
|
@ -88,7 +82,7 @@ Python bindings for libpfm4 and perf_event_open system call.
|
||||||
%else
|
%else
|
||||||
%global python_config CONFIG_PFMLIB_NOPYTHON=y
|
%global python_config CONFIG_PFMLIB_NOPYTHON=y
|
||||||
%endif
|
%endif
|
||||||
make %{python_config} %{?_smp_mflags} \
|
%make_build %{python_config} \
|
||||||
OPTIM="%{optflags}" LDFLAGS="%{build_ldflags}"
|
OPTIM="%{optflags}" LDFLAGS="%{build_ldflags}"
|
||||||
|
|
||||||
|
|
||||||
|
@ -108,8 +102,11 @@ make \
|
||||||
LDCONFIG=/bin/true \
|
LDCONFIG=/bin/true \
|
||||||
install
|
install
|
||||||
|
|
||||||
%post -p /sbin/ldconfig
|
%if !%{with_static}
|
||||||
%postun -p /sbin/ldconfig
|
rm $RPM_BUILD_ROOT%{_libdir}/lib*.a
|
||||||
|
%endif
|
||||||
|
|
||||||
|
%ldconfig_scriptlets
|
||||||
|
|
||||||
%files
|
%files
|
||||||
%doc README
|
%doc README
|
||||||
|
@ -120,26 +117,85 @@ make \
|
||||||
%{_mandir}/man3/*
|
%{_mandir}/man3/*
|
||||||
%{_libdir}/lib*.so
|
%{_libdir}/lib*.so
|
||||||
|
|
||||||
|
%if %{with_static}
|
||||||
%files static
|
%files static
|
||||||
%{_libdir}/lib*.a
|
%{_libdir}/lib*.a
|
||||||
|
%endif
|
||||||
|
|
||||||
%if %{with python}
|
%if %{with python}
|
||||||
%files -n python3-libpfm
|
%files -n python3-libpfm
|
||||||
%{python_sitearch}/*
|
%{python3_sitearch}/*
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Sun May 8 2022 William Cohen <wcohen@redhat.com> - 4.10.1-5
|
* Mon Jun 12 2023 William cohen <wcohen@redhat.com> - 4.13.0-4
|
||||||
- Add AMD Zen 2/3 support (RHBZ #2067218)
|
- Identify AMD Bergamo processors.
|
||||||
|
|
||||||
* Thu May 20 2021 William Cohen <wcohen@redhat.com> - 4.10.1-4
|
* Wed May 3 2023 William cohen <wcohen@redhat.com> - 4.13.0-3
|
||||||
- Add Fujitsu A64FX support (RHBZ #1908126)
|
- Rebuild for rhbz #2186927.
|
||||||
|
|
||||||
* Wed May 27 2020 William Cohen <wcohen@redhat.com> - 4.10.1-3
|
|
||||||
- Add Marvell TunderX2 UNC support. (RHBZ #1726070)
|
|
||||||
|
|
||||||
* Tue Oct 15 2019 William Cohen <wcohen@redhat.com> - 4.10.1-2
|
* Wed May 3 2023 William cohen <wcohen@redhat.com> - 4.13.0-2
|
||||||
- Add IBM zseries support. (RHBZ #1731019)
|
- Rebuild for rhbz #2186927.
|
||||||
|
|
||||||
|
* Fri Apr 14 2023 William cohen <wcohen@redhat.com> - 4.13.0-1
|
||||||
|
- Rebase to libpf-4.13.0 (rhbz #2185652)
|
||||||
|
|
||||||
|
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 4.11.0-6
|
||||||
|
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||||
|
Related: rhbz#1991688
|
||||||
|
|
||||||
|
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 4.11.0-5
|
||||||
|
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||||
|
|
||||||
|
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 4.11.0-4
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||||
|
|
||||||
|
* Sat Jan 23 2021 William Cohen <wcohen@redhat.com> - 4.11.0-3
|
||||||
|
- Reenable generation of static libraries for time being.
|
||||||
|
|
||||||
|
* Fri Jan 22 2021 William Cohen <wcohen@redhat.com> - 4.11.0-2
|
||||||
|
- By default disable generation of static libraries
|
||||||
|
|
||||||
|
* Tue Sep 08 2020 William Cohen <wcohen@redhat.com> - 4.11.0-1
|
||||||
|
- Rebase on libpfm-4.11.0.
|
||||||
|
|
||||||
|
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.1-13
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||||
|
|
||||||
|
* Mon Jul 13 2020 Tom Stellard <tstellar@redhat.com> - 4.10.1-12
|
||||||
|
- Use make macros
|
||||||
|
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
|
||||||
|
|
||||||
|
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 4.10.1-11
|
||||||
|
- Rebuilt for Python 3.9
|
||||||
|
|
||||||
|
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.1-10
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
||||||
|
|
||||||
|
* Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 4.10.1-9
|
||||||
|
- Rebuilt for Python 3.8.0rc1 (#1748018)
|
||||||
|
|
||||||
|
* Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 4.10.1-8
|
||||||
|
- Rebuilt for Python 3.8
|
||||||
|
|
||||||
|
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.1-7
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
|
||||||
|
|
||||||
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.1-6
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jul 17 2018 Miro Hrončok <mhroncok@redhat.com> - 4.10.1-5
|
||||||
|
- Update Python macros to new packaging standards
|
||||||
|
(See https://fedoraproject.org/wiki/Changes/Move_usr_bin_python_into_separate_package)
|
||||||
|
|
||||||
|
* Sun Jul 15 2018 William Cohen <wcohen@redhat.com> - 4.10.1-4
|
||||||
|
- Add gcc Buildrequires.
|
||||||
|
|
||||||
|
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 4.10.1-3
|
||||||
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
||||||
|
|
||||||
|
* Tue Jun 19 2018 Miro Hrončok <mhroncok@redhat.com> - 4.10.1-2
|
||||||
|
- Rebuilt for Python 3.7
|
||||||
|
|
||||||
* Fri Jun 15 2018 William Cohen <wcohen@redhat.com> - 4.10.1-1
|
* Fri Jun 15 2018 William Cohen <wcohen@redhat.com> - 4.10.1-1
|
||||||
- Rebase on libpfm-4.10.1.
|
- Rebase on libpfm-4.10.1.
|
||||||
|
|
Loading…
Reference in New Issue