Discussion:
[Ptools-perfapi] make test failed: PAPI_TOT_CYC is not available
Anton Shterenlikht
2016-03-24 15:37:33 UTC
Permalink
Hi

Trying to install papi 5.4.3 on linux x86_64.
I configured with ./configure MPICC=mpiicc
to make sure MPI wrapper for Intel compiler was used.
Here's the log:
http://eis.bris.ac.uk/~mexas/cgpack/201603res/papi-config.log

make completed fine. Here's the log:
http://eis.bris.ac.uk/~mexas/cgpack/201603res/papi-make.log

make test gives:

ctests/zero
0x8000003b PAPI_TOT_CYC is not available.
0x80000034 PAPI_FP_INS is not available.
0x8000003b PAPI_TOT_CYC is not available.
0x80000066 PAPI_FP_OPS is not available.
0x8000003b PAPI_TOT_CYC is not available.
0x80000032 PAPI_TOT_INS is not available.
test_utils.c FAILED
Line # 717
Error: Not enough room to add an event!

Here's the full log:
http://eis.bris.ac.uk/~mexas/cgpack/201603res/papi-make-test.log

Please advise

Thanks

Anton
Vince Weaver
2016-03-24 16:09:12 UTC
Permalink
Post by Anton Shterenlikht
Hi
Trying to install papi 5.4.3 on linux x86_64.
I configured with ./configure MPICC=mpiicc
to make sure MPI wrapper for Intel compiler was used.
http://eis.bris.ac.uk/~mexas/cgpack/201603res/papi-config.log
http://eis.bris.ac.uk/~mexas/cgpack/201603res/papi-make.log
ctests/zero
0x8000003b PAPI_TOT_CYC is not available.
0x80000034 PAPI_FP_INS is not available.
0x8000003b PAPI_TOT_CYC is not available.
0x80000066 PAPI_FP_OPS is not available.
0x8000003b PAPI_TOT_CYC is not available.
0x80000032 PAPI_TOT_INS is not available.
test_utils.c FAILED
Line # 717
Error: Not enough room to add an event!
http://eis.bris.ac.uk/~mexas/cgpack/201603res/papi-make-test.log
What version of Linux and disribution are you running?

What does the papi_component_avail program report on your system?


Vince
Anton Shterenlikht
2016-03-24 16:44:52 UTC
Permalink
Post by Vince Weaver
Post by Anton Shterenlikht
0x8000003b PAPI_TOT_CYC is not available.
0x80000066 PAPI_FP_OPS is not available.
0x8000003b PAPI_TOT_CYC is not available.
0x80000032 PAPI_TOT_INS is not available.
test_utils.c FAILED
Line # 717
Error: Not enough room to add an event!
http://eis.bris.ac.uk/~mexas/cgpack/201603res/papi-make-test.log
What version of Linux and disribution are you running?
$ uname -a
Linux 2.6.32-220.23.1.el6.x86_64 #1 SMP Mon Jun 18 09:58:09 CDT 2012 x86_64 x86_64 x86_64 GNU/Linux
Post by Vince Weaver
What does the papi_component_avail program report on your system?
$ ~/papi-5.4.3/src/utils/papi_component_avail
Available components and hardware information.
--------------------------------------------------------------------------------
PAPI Version : 5.4.3.0
Vendor string and code : GenuineIntel (1)
Model string and code : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz (45)
CPU Revision : 7.000000
CPUID Info : Family: 6 Model: 45 Stepping: 7
CPU Max Megahertz : 2599
CPU Min Megahertz : 2599
Hdw Threads per core : 1
Cores per Socket : 8
Sockets : 2
NUMA Nodes : 2
CPUs per Node : 8
Total CPUs : 16
Running in a VM : no
Number Hardware Counters : 11
Max Multiplex Counters : 32
--------------------------------------------------------------------------------

Compiled-in components:
Name: perf_event Linux perf_event CPU counters
Name: perf_event_uncore Linux perf_event CPU uncore and northbridge
\-> Disabled: Insufficient permissions for uncore access. Set /proc/sys/kernel/perf_event_paranoid to 0 or run as root.

Active components:
Name: perf_event Linux perf_event CPU counters
Native: 171, Preset: 50, Counters: 11
PMU's supported: ix86arch, perf, snb_ep, perf_raw


--------------------------------------------------------------------------------
component.c PASSED


Thanks

Anton
Vince Weaver
2016-03-24 19:23:11 UTC
Permalink
Post by Anton Shterenlikht
$ uname -a
Linux 2.6.32-220.23.1.el6.x86_64 #1 SMP Mon Jun 18 09:58:09 CDT 2012 x86_64 x86_64 x86_64 GNU/Linux
That kernel's pretty old, but I think Redhat backports a lot of fixes
so it should probably be OK.
Post by Anton Shterenlikht
Name: perf_event Linux perf_event CPU counters
Native: 171, Preset: 50, Counters: 11
PMU's supported: ix86arch, perf, snb_ep, perf_raw
That looks good at least.

strange it's not working. Do you have the "perf" tool installed?
Does running something like "perf stat -e cycles /bin/ls" return useful
results?

Vince
Anton Shterenlikht
2016-03-25 10:18:15 UTC
Permalink
Post by Vince Weaver
Does running something like "perf stat -e cycles /bin/ls" return useful
results?
$ which perf
/usr/bin/perf
$ perf stat -e cycles /bin/ls
<skip ls output>

Performance counter stats for '/bin/ls':

7,463,051 cycles # 0.000 GHz

0.002552476 seconds time elapsed

However, if I add "-v", I get:

newblue4> perf stat -e cycles -v /bin/ls
Old kernel, cannot exclude guest or host samples.
<skip ls output>
cycles: 7384246 2235923 2235923

Performance counter stats for '/bin/ls':

7,384,246 cycles # 0.000 GHz

0.002462987 seconds time elapsed

BTW, PAPI 5.3.0 is available on the system via modules:
libraries/intel_builds/papi-5.3.0.

papi_avail from 5.3 and 5.4 return identical output.
I don't know if this helps:

Available events and hardware information.
--------------------------------------------------------------------------------
PAPI Version : 5.3.0.0
Vendor string and code : GenuineIntel (1)
Model string and code : Intel(R) Xeon(R) CPU E5-2670 0 @ 2.60GHz (45)
CPU Revision : 7.000000
CPUID Info : Family: 6 Model: 45 Stepping: 7
CPU Max Megahertz : 2599
CPU Min Megahertz : 2599
Hdw Threads per core : 1
Cores per Socket : 8
Sockets : 2
NUMA Nodes : 2
CPUs per Node : 8
Total CPUs : 16
Running in a VM : no
Number Hardware Counters : 11
Max Multiplex Counters : 32
--------------------------------------------------------------------------------

Name Code Avail Deriv Description (Note)
PAPI_L1_DCM 0x80000000 Yes No Level 1 data cache misses
PAPI_L1_ICM 0x80000001 Yes No Level 1 instruction cache misses
PAPI_L2_DCM 0x80000002 Yes Yes Level 2 data cache misses
PAPI_L2_ICM 0x80000003 Yes No Level 2 instruction cache misses
PAPI_L3_DCM 0x80000004 No No Level 3 data cache misses
PAPI_L3_ICM 0x80000005 No No Level 3 instruction cache misses
PAPI_L1_TCM 0x80000006 Yes Yes Level 1 cache misses
PAPI_L2_TCM 0x80000007 Yes No Level 2 cache misses
PAPI_L3_TCM 0x80000008 Yes No Level 3 cache misses
PAPI_CA_SNP 0x80000009 No No Requests for a snoop
PAPI_CA_SHR 0x8000000a No No Requests for exclusive access to
shared cache line
PAPI_CA_CLN 0x8000000b No No Requests for exclusive access to
clean cache line
PAPI_CA_INV 0x8000000c No No Requests for cache line invalidation
PAPI_CA_ITV 0x8000000d No No Requests for cache line intervention
PAPI_L3_LDM 0x8000000e No No Level 3 load misses
PAPI_L3_STM 0x8000000f No No Level 3 store misses
PAPI_BRU_IDL 0x80000010 No No Cycles branch units are idle
PAPI_FXU_IDL 0x80000011 No No Cycles integer units are idle
PAPI_FPU_IDL 0x80000012 No No Cycles floating point units are idle
PAPI_LSU_IDL 0x80000013 No No Cycles load/store units are idle
PAPI_TLB_DM 0x80000014 Yes Yes Data translation lookaside buffer misses
PAPI_TLB_IM 0x80000015 Yes No Instruction translation lookaside
buffer misses
PAPI_TLB_TL 0x80000016 No No Total translation lookaside buffer misses
PAPI_L1_LDM 0x80000017 Yes No Level 1 load misses
PAPI_L1_STM 0x80000018 Yes No Level 1 store misses
PAPI_L2_LDM 0x80000019 No No Level 2 load misses
PAPI_L2_STM 0x8000001a Yes No Level 2 store misses
PAPI_BTAC_M 0x8000001b No No Branch target address cache misses
PAPI_PRF_DM 0x8000001c No No Data prefetch cache misses
PAPI_L3_DCH 0x8000001d No No Level 3 data cache hits
PAPI_TLB_SD 0x8000001e No No Translation lookaside buffer shootdowns
PAPI_CSR_FAL 0x8000001f No No Failed store conditional instructions
PAPI_CSR_SUC 0x80000020 No No Successful store conditional instructions
PAPI_CSR_TOT 0x80000021 No No Total store conditional instructions
PAPI_MEM_SCY 0x80000022 No No Cycles Stalled Waiting for memory accesses
PAPI_MEM_RCY 0x80000023 No No Cycles Stalled Waiting for memory Reads
PAPI_MEM_WCY 0x80000024 No No Cycles Stalled Waiting for memory writes
PAPI_STL_ICY 0x80000025 Yes No Cycles with no instruction issue
PAPI_FUL_ICY 0x80000026 No No Cycles with maximum instruction issue
PAPI_STL_CCY 0x80000027 No No Cycles with no instructions completed
PAPI_FUL_CCY 0x80000028 No No Cycles with maximum instructions completed
PAPI_HW_INT 0x80000029 No No Hardware interrupts
PAPI_BR_UCN 0x8000002a Yes Yes Unconditional branch instructions
PAPI_BR_CN 0x8000002b Yes No Conditional branch instructions
PAPI_BR_TKN 0x8000002c Yes Yes Conditional branch instructions taken
PAPI_BR_NTK 0x8000002d Yes No Conditional branch instructions not taken
PAPI_BR_MSP 0x8000002e Yes No Conditional branch instructions mispredicted
PAPI_BR_PRC 0x8000002f Yes Yes Conditional branch instructions
correctly predicted
PAPI_FMA_INS 0x80000030 No No FMA instructions completed
PAPI_TOT_IIS 0x80000031 No No Instructions issued
PAPI_TOT_INS 0x80000032 Yes No Instructions completed
PAPI_INT_INS 0x80000033 No No Integer instructions
PAPI_FP_INS 0x80000034 Yes Yes Floating point instructions
PAPI_LD_INS 0x80000035 Yes No Load instructions
PAPI_SR_INS 0x80000036 Yes No Store instructions
PAPI_BR_INS 0x80000037 Yes No Branch instructions
PAPI_VEC_INS 0x80000038 No No Vector/SIMD instructions (could
include integer)
PAPI_RES_STL 0x80000039 No No Cycles stalled on any resource
PAPI_FP_STAL 0x8000003a No No Cycles the FP unit(s) are stalled
PAPI_TOT_CYC 0x8000003b Yes No Total cycles
PAPI_LST_INS 0x8000003c No No Load/store instructions completed
PAPI_SYC_INS 0x8000003d No No Synchronization instructions completed
PAPI_L1_DCH 0x8000003e No No Level 1 data cache hits
PAPI_L2_DCH 0x8000003f Yes Yes Level 2 data cache hits
PAPI_L1_DCA 0x80000040 No No Level 1 data cache accesses
PAPI_L2_DCA 0x80000041 Yes No Level 2 data cache accesses
PAPI_L3_DCA 0x80000042 Yes Yes Level 3 data cache accesses
PAPI_L1_DCR 0x80000043 No No Level 1 data cache reads
PAPI_L2_DCR 0x80000044 Yes No Level 2 data cache reads
PAPI_L3_DCR 0x80000045 Yes No Level 3 data cache reads
PAPI_L1_DCW 0x80000046 No No Level 1 data cache writes
PAPI_L2_DCW 0x80000047 Yes No Level 2 data cache writes
PAPI_L3_DCW 0x80000048 Yes No Level 3 data cache writes
PAPI_L1_ICH 0x80000049 No No Level 1 instruction cache hits
PAPI_L2_ICH 0x8000004a Yes No Level 2 instruction cache hits
PAPI_L3_ICH 0x8000004b No No Level 3 instruction cache hits
PAPI_L1_ICA 0x8000004c No No Level 1 instruction cache accesses
PAPI_L2_ICA 0x8000004d Yes No Level 2 instruction cache accesses
PAPI_L3_ICA 0x8000004e Yes No Level 3 instruction cache accesses
PAPI_L1_ICR 0x8000004f No No Level 1 instruction cache reads
PAPI_L2_ICR 0x80000050 Yes No Level 2 instruction cache reads
PAPI_L3_ICR 0x80000051 Yes No Level 3 instruction cache reads
PAPI_L1_ICW 0x80000052 No No Level 1 instruction cache writes
PAPI_L2_ICW 0x80000053 No No Level 2 instruction cache writes
PAPI_L3_ICW 0x80000054 No No Level 3 instruction cache writes
PAPI_L1_TCH 0x80000055 No No Level 1 total cache hits
PAPI_L2_TCH 0x80000056 No No Level 2 total cache hits
PAPI_L3_TCH 0x80000057 No No Level 3 total cache hits
PAPI_L1_TCA 0x80000058 No No Level 1 total cache accesses
PAPI_L2_TCA 0x80000059 Yes Yes Level 2 total cache accesses
PAPI_L3_TCA 0x8000005a Yes No Level 3 total cache accesses
PAPI_L1_TCR 0x8000005b No No Level 1 total cache reads
PAPI_L2_TCR 0x8000005c Yes Yes Level 2 total cache reads
PAPI_L3_TCR 0x8000005d Yes Yes Level 3 total cache reads
PAPI_L1_TCW 0x8000005e No No Level 1 total cache writes
PAPI_L2_TCW 0x8000005f Yes No Level 2 total cache writes
PAPI_L3_TCW 0x80000060 Yes No Level 3 total cache writes
PAPI_FML_INS 0x80000061 No No Floating point multiply instructions
PAPI_FAD_INS 0x80000062 No No Floating point add instructions
PAPI_FDV_INS 0x80000063 Yes No Floating point divide instructions
PAPI_FSQ_INS 0x80000064 No No Floating point square root instructions
PAPI_FNV_INS 0x80000065 No No Floating point inverse instructions
PAPI_FP_OPS 0x80000066 Yes Yes Floating point operations
PAPI_SP_OPS 0x80000067 Yes Yes Floating point operations;
optimized to count scaled single precision vector operations
PAPI_DP_OPS 0x80000068 Yes Yes Floating point operations;
optimized to count scaled double precision vector operations
PAPI_VEC_SP 0x80000069 Yes Yes Single precision vector/SIMD instructions
PAPI_VEC_DP 0x8000006a Yes Yes Double precision vector/SIMD instructions
PAPI_REF_CYC 0x8000006b Yes No Reference clock cycles
-------------------------------------------------------------------------
Of 108 possible events, 50 are available, of which 17 are derived.

avail.c PASSED

Thanks

Anton
Vince Weaver
2016-03-30 18:57:16 UTC
Permalink
Post by Anton Shterenlikht
newblue4> perf stat -e cycles -v /bin/ls
Old kernel, cannot exclude guest or host samples.
This is probably the problem.

You can try working around this by opening the
components/perf_event/perf_event.c
file

and at the beginning of the sys_perf_event_open() function add this:

hw_event->exclude_guest=0;

and see if that fixes things.

I guess we really do need to probe for this like the perf tool does.

It would be better if libpfm4 didn't set this by default.

Vince

Loading...