resolves rhbz830275 - Add support for POWER8 processor to PAPI
This commit is contained in:
parent
802f1b9f7b
commit
70927391a7
180
papi-power8.patch
Normal file
180
papi-power8.patch
Normal file
@ -0,0 +1,180 @@
|
|||||||
|
commit c0c4caf4c1095fc6428d6773eea1f24ec496384a
|
||||||
|
Author: Maynard Johnson <maynardj@us.ibm.com>
|
||||||
|
Date: Tue Jul 23 15:44:52 2013 -0500
|
||||||
|
|
||||||
|
Add initial support for IBM POWER8 processor
|
||||||
|
|
||||||
|
Add initial support for IBM POWER8 processor
|
||||||
|
|
||||||
|
The IBM POWER8 processor (to be publicly announced at some
|
||||||
|
future date) has some preliminary support in libpfm with
|
||||||
|
a subset of native events. These POWER8-related libpfm
|
||||||
|
changes were pulled into PAPI on July 3, so further updates
|
||||||
|
in PAPI were required to support this new processor. This
|
||||||
|
patch adds that required support. NOTE: Due to the fact
|
||||||
|
that only a subset of native events have been publicised
|
||||||
|
at this point (and pushed into libpfm), not all of the
|
||||||
|
usual PAPI preset events have corresponding native events.
|
||||||
|
The rest of the POWER8 native events will be pushed
|
||||||
|
upstream once they are verified, and then we can flesh out
|
||||||
|
the PAPI preset events.
|
||||||
|
|
||||||
|
With this initial POWER8 support patch, 5 of the ctests
|
||||||
|
and ftests fail, compared to 3 when PAPI is run on a POWER7.
|
||||||
|
At least one of the failing testcases is due to testing
|
||||||
|
being done on an early POWER8 processor with some known
|
||||||
|
hardware problems. We presume the number of failing tests
|
||||||
|
will decrease once we have GA-level hardware to test on.
|
||||||
|
|
||||||
|
Signed-off-by: Maynard Johnson <maynardj@us.ibm.com>
|
||||||
|
|
||||||
|
diff --git a/src/linux-memory.c b/src/linux-memory.c
|
||||||
|
index 4a30da9..6c69fbd 100644
|
||||||
|
--- a/src/linux-memory.c
|
||||||
|
+++ b/src/linux-memory.c
|
||||||
|
@@ -486,7 +486,7 @@ PAPI_mh_info_t sys_mem_info[4] = {
|
||||||
|
,
|
||||||
|
.cache = {
|
||||||
|
[0] = { .type = PAPI_MH_TYPE_UNIFIED | PAPI_MH_TYPE_PSEUDO_LRU,
|
||||||
|
- .size = 262144, .line_size = 128, .num_lines = 256,
|
||||||
|
+ .size = 524288, .line_size = 128, .num_lines = 256,
|
||||||
|
.associativity = 8 }
|
||||||
|
,
|
||||||
|
[1] = { .type = PAPI_MH_TYPE_EMPTY, .size = -1, .line_size = -1,
|
||||||
|
@@ -514,7 +514,74 @@ PAPI_mh_info_t sys_mem_info[4] = {
|
||||||
|
}
|
||||||
|
,
|
||||||
|
}
|
||||||
|
- } // POWER7 end
|
||||||
|
+ }, // POWER7 end
|
||||||
|
+ {3,
|
||||||
|
+ {
|
||||||
|
+ [0] = { // level 1 begins
|
||||||
|
+ .tlb = {
|
||||||
|
+ /// POWER8 has an ERAT (Effective to Real Address
|
||||||
|
+ /// Translation) instead of a TLB. For the purposes of this
|
||||||
|
+ /// data, we will treat it like a TLB.
|
||||||
|
+ [0] = { .type = PAPI_MH_TYPE_INST,
|
||||||
|
+ .num_entries = 72, .page_size = 0,
|
||||||
|
+ .associativity = SHRT_MAX }
|
||||||
|
+ ,
|
||||||
|
+ [1] = { .type = PAPI_MH_TYPE_DATA,
|
||||||
|
+ .num_entries = 48, .page_size = 0,
|
||||||
|
+ .associativity = SHRT_MAX }
|
||||||
|
+ }
|
||||||
|
+ ,
|
||||||
|
+ .cache = { // level 1 caches begin
|
||||||
|
+ [0] = { .type = PAPI_MH_TYPE_INST | PAPI_MH_TYPE_PSEUDO_LRU,
|
||||||
|
+ .size = 32768, .line_size = 128, .num_lines = 64,
|
||||||
|
+ .associativity = 8 }
|
||||||
|
+ ,
|
||||||
|
+ [1] = { .type = PAPI_MH_TYPE_DATA | PAPI_MH_TYPE_WT | PAPI_MH_TYPE_LRU,
|
||||||
|
+ .size = 65536, .line_size = 128, .num_lines = 512,
|
||||||
|
+ .associativity = 8 }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ ,
|
||||||
|
+ [1] = { // level 2 begins
|
||||||
|
+ .tlb = {
|
||||||
|
+ [0] = { .type = PAPI_MH_TYPE_UNIFIED, .num_entries = 2048,
|
||||||
|
+ .page_size = 0, .associativity = 4 }
|
||||||
|
+ ,
|
||||||
|
+ [1] = { .type = PAPI_MH_TYPE_EMPTY, .num_entries = -1,
|
||||||
|
+ .page_size = -1, .associativity = -1 }
|
||||||
|
+ }
|
||||||
|
+ ,
|
||||||
|
+ .cache = {
|
||||||
|
+ [0] = { .type = PAPI_MH_TYPE_UNIFIED | PAPI_MH_TYPE_PSEUDO_LRU,
|
||||||
|
+ .size = 262144, .line_size = 128, .num_lines = 256,
|
||||||
|
+ .associativity = 8 }
|
||||||
|
+ ,
|
||||||
|
+ [1] = { .type = PAPI_MH_TYPE_EMPTY, .size = -1, .line_size = -1,
|
||||||
|
+ .num_lines = -1, .associativity = -1 }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ ,
|
||||||
|
+ [2] = { // level 3 begins
|
||||||
|
+ .tlb = {
|
||||||
|
+ [0] = { .type = PAPI_MH_TYPE_EMPTY, .num_entries = -1,
|
||||||
|
+ .page_size = -1, .associativity = -1 }
|
||||||
|
+ ,
|
||||||
|
+ [1] = { .type = PAPI_MH_TYPE_EMPTY, .num_entries = -1,
|
||||||
|
+ .page_size = -1, .associativity = -1 }
|
||||||
|
+ }
|
||||||
|
+ ,
|
||||||
|
+ .cache = {
|
||||||
|
+ [0] = { .type = PAPI_MH_TYPE_UNIFIED | PAPI_MH_TYPE_PSEUDO_LRU,
|
||||||
|
+ .size = 8388608, .line_size = 128, .num_lines = 65536,
|
||||||
|
+ .associativity = 8 }
|
||||||
|
+ ,
|
||||||
|
+ [1] = { .type = PAPI_MH_TYPE_EMPTY, .size = -1, .line_size = -1,
|
||||||
|
+ .num_lines = -1, .associativity = -1 }
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ ,
|
||||||
|
+ }
|
||||||
|
+ } // POWER8 end
|
||||||
|
};
|
||||||
|
|
||||||
|
#define SPRN_PVR 0x11F /* Processor Version Register */
|
||||||
|
@@ -552,6 +619,9 @@ ppc64_get_memory_info( PAPI_hw_info_t * hw_info )
|
||||||
|
case 0x3F: /* POWER7 */
|
||||||
|
index = 3;
|
||||||
|
break;
|
||||||
|
+ case 0x4b: /*POWER8*/
|
||||||
|
+ index = 4;
|
||||||
|
+ break;
|
||||||
|
default:
|
||||||
|
index = -1;
|
||||||
|
break;
|
||||||
|
diff --git a/src/papi_events.csv b/src/papi_events.csv
|
||||||
|
index 58d3e68..2e0da80 100644
|
||||||
|
--- a/src/papi_events.csv
|
||||||
|
+++ b/src/papi_events.csv
|
||||||
|
@@ -1241,6 +1241,46 @@ PRESET,PAPI_BR_MSP,NOT_DERIVED,PM_BR_MPRED
|
||||||
|
PRESET,PAPI_BR_PRC,NOT_DERIVED,PM_BR_PRED
|
||||||
|
PRESET,PAPI_FXU_IDL,NOT_DERIVED,PM_FXU_IDLE
|
||||||
|
#
|
||||||
|
+CPU,POWER8
|
||||||
|
+CPU,power8
|
||||||
|
+#
|
||||||
|
+PRESET,PAPI_L1_DCM,DERIVED_ADD,PM_LD_MISS_L1,PM_ST_MISS_L1
|
||||||
|
+PRESET,PAPI_L1_LDM,NOT_DERIVED,PM_LD_MISS_L1
|
||||||
|
+PRESET,PAPI_L1_STM,NOT_DERIVED,PM_ST_MISS_L1
|
||||||
|
+PRESET,PAPI_L1_DCW,DERIVED_POSTFIX,N0|N1|-|,PM_ST_FIN,PM_ST_MISS_L1
|
||||||
|
+#n/aPRESET,PAPI_L1_DCA,DERIVED_POSTFIX,N0|N1|-|N2|+|,PM_ST_FIN,PM_ST_MISS_L1,PM_LD_REF_L1
|
||||||
|
+#n/aPRESET,PAPI_L1_DCR,DERIVED_ADD,PM_LD_REF_L1_LSU0,PM_LD_REF_L1_LSU1
|
||||||
|
+PRESET,PAPI_L2_DCM,NOT_DERIVED,PM_DATA_FROM_L2MISS
|
||||||
|
+#n/aPRESET,PAPI_L2_LDM,NOT_DERIVED,PM_L2_LD_MISS
|
||||||
|
+#n/aPRESET,PAPI_L2_STM,NOT_DERIVED,PM_L2_ST_MISS
|
||||||
|
+PRESET,PAPI_L3_DCR,NOT_DERIVED,PM_DATA_FROM_L2MISS
|
||||||
|
+#n/aPRESET,PAPI_L3_DCM,DERIVED_ADD,PM_DATA_FROM_LMEM,PM_DATA_FROM_RMEM
|
||||||
|
+#n/aPRESET,PAPI_L3_LDM,DERIVED_ADD,PM_DATA_FROM_LMEM,PM_DATA_FROM_RMEM
|
||||||
|
+#n/aPRESET,PAPI_L1_ICH,NOT_DERIVED,PM_INST_FROM_L1
|
||||||
|
+PRESET,PAPI_L1_ICM,NOT_DERIVED,PM_L1_ICACHE_MISS
|
||||||
|
+#n/aPRESET,PAPI_L2_ICM,NOT_DERIVED,PM_L2_INST_MISS
|
||||||
|
+#n/aPRESET,PAPI_L2_ICH,NOT_DERIVED,PM_INST_FROM_L2
|
||||||
|
+#n/aPRESET,PAPI_L3_ICA,NOT_DERIVED,PM_INST_FROM_L2MISS
|
||||||
|
+#n/aPRESET,PAPI_L3_ICH,NOT_DERIVED,PM_INST_FROM_L3
|
||||||
|
+PRESET,PAPI_L3_ICM,NOT_DERIVED,PM_INST_FROM_L3MISS
|
||||||
|
+#n/aPRESET,PAPI_FMA_INS,NOT_DERIVED,PM_VSU_FMA
|
||||||
|
+PRESET,PAPI_TOT_IIS,NOT_DERIVED,PM_INST_DISP
|
||||||
|
+PRESET,PAPI_TOT_INS,NOT_DERIVED,PM_INST_CMPL
|
||||||
|
+#n/aPRESET,PAPI_INT_INS,DERIVED_ADD,PM_FXU0_FIN,PM_FXU1_FIN
|
||||||
|
+PRESET,PAPI_FP_OPS,NOT_DERIVED,PM_FLOP
|
||||||
|
+PRESET,PAPI_FP_INS,NOT_DERIVED,PM_FLOP
|
||||||
|
+PRESET,PAPI_TOT_CYC,NOT_DERIVED,PM_RUN_CYC
|
||||||
|
+PRESET,PAPI_HW_INT,NOT_DERIVED,PM_EXT_INT
|
||||||
|
+PRESET,PAPI_STL_ICY,DERIVED_POSTFIX,N0|N1|-|,PM_RUN_CYC,PM_1PLUS_PPC_DISP
|
||||||
|
+PRESET,PAPI_SR_INS,NOT_DERIVED,PM_ST_FIN
|
||||||
|
+#n/aPRESET,PAPI_LD_INS,DERIVED_ADD,PM_LD_REF_L1,PM_LD_MISS_L1
|
||||||
|
+#/naPRESET,PAPI_LST_INS,NOT_DERIVED,PM_LSU_FIN
|
||||||
|
+#PRESET,PAPI_LST_INS,DERIVED_ADD,PM_LD_REF_L1,PM_LD_MISS_L1,PM_ST_FIN
|
||||||
|
+#n/aPRESET,PAPI_BR_INS,NOT_DERIVED,PM_BRU_FIN
|
||||||
|
+#n/aPRESET,PAPI_BR_MSP,NOT_DERIVED,PM_BR_MPRED
|
||||||
|
+#n/aPRESET,PAPI_BR_PRC,NOT_DERIVED,PM_BR_PRED
|
||||||
|
+#n/aPRESET,PAPI_FXU_IDL,NOT_DERIVED,PM_FXU_IDLE
|
||||||
|
+#
|
||||||
|
CPU,ultra12
|
||||||
|
#
|
||||||
|
PRESET,PAPI_TOT_CYC,NOT_DERIVED,CYCLE_CNT
|
@ -2,7 +2,7 @@
|
|||||||
Summary: Performance Application Programming Interface
|
Summary: Performance Application Programming Interface
|
||||||
Name: papi
|
Name: papi
|
||||||
Version: 5.1.1
|
Version: 5.1.1
|
||||||
Release: 6%{?dist}
|
Release: 7%{?dist}
|
||||||
License: BSD
|
License: BSD
|
||||||
Group: Development/System
|
Group: Development/System
|
||||||
URL: http://icl.cs.utk.edu/papi/
|
URL: http://icl.cs.utk.edu/papi/
|
||||||
@ -11,6 +11,7 @@ Patch200: papi-testsuite1.patch
|
|||||||
Patch210: papi-native-option.patch
|
Patch210: papi-native-option.patch
|
||||||
Patch211: papi-man.patch
|
Patch211: papi-man.patch
|
||||||
Patch212: papi-shlib.patch
|
Patch212: papi-shlib.patch
|
||||||
|
Patch213: papi-power8.patch
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
|
||||||
BuildRequires: autoconf
|
BuildRequires: autoconf
|
||||||
BuildRequires: doxygen
|
BuildRequires: doxygen
|
||||||
@ -66,6 +67,7 @@ the PAPI user-space libraries and interfaces.
|
|||||||
%patch210 -p1
|
%patch210 -p1
|
||||||
%patch211 -p1
|
%patch211 -p1
|
||||||
%patch212 -p1 -b .shlib
|
%patch212 -p1 -b .shlib
|
||||||
|
%patch213 -p1 -b .power8
|
||||||
|
|
||||||
%build
|
%build
|
||||||
%if %{without bundled_libpfm}
|
%if %{without bundled_libpfm}
|
||||||
@ -145,6 +147,9 @@ rm -rf $RPM_BUILD_ROOT
|
|||||||
%{_libdir}/*.a
|
%{_libdir}/*.a
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Jul 24 2013 William Cohen <wcohen@redhat.com> - 5.1.1-7
|
||||||
|
- rhbz830275 - Add support for POWER8 processor to PAPI
|
||||||
|
|
||||||
* Mon Jul 22 2013 William Cohen <wcohen@redhat.com> - 5.1.1-6
|
* Mon Jul 22 2013 William Cohen <wcohen@redhat.com> - 5.1.1-6
|
||||||
- Add autoconf buildrequires.
|
- Add autoconf buildrequires.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user