From: <jj...@nu...> - 2009-05-08 14:46:59
|
Hi Kufrin, Recently I'm trying to build and install perfsuite-0.6.2. My platform is Thinkpad T43. Following is the CPU information dumped by the /proc filesystem. jiejiang@UT43:~/Perfsuite$ cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 13 model name : Intel(R) Pentium(R) M processor 2.00GHz stepping : 8 cpu MHz : 800.000 cache size : 2048 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss tm pbe nx up bts est tm2 bogomips : 1596.08 clflush size : 64 power management: The operation system is Linux-2.6.27 with appropriate perfctr patch. Note that here I use a separate perfctr patch downloaded from perfctr website, not the one included in the PAPI release. We can confirm that perfctr works well using "perfex -i" command: jiejiang@UT43:~/Perfsuite$ perfex -i PerfCtr Info: abi_version 0x05020501 driver_version 2.6.37 DEBUG cpu_type 14 (Intel Pentium M) cpu_features 0x7 (rdpmc,rdtsc,pcint) cpu_khz 1995105 tsc_to_cpu_mult 1 cpu_nrctrs 2 cpus [0], total: 1 cpus_forbidden [], total: 0 After the above work, I built and installed PAPI-3.6.2. The "papi_avail" and "papi_native_avail" commands output the corresponding preset and native event lists separately. After installing all other necessary enabling packages, such as TCL/TK/Expat/tDOM, I managed to build and install perfsuite-0.6.2. And basically, psinv/psrun/psprocess/psconfig commands works as expected. However, there are still some questions confusing me. When issuing psinv with -e optio, it says: jiejiang@UT43:~/Perfsuite/perfsuite-0.6.2$ psinv -e System Information - Node Name: UT43 OS Name: Linux OS Release: 2.6.27-perfctr OS Build/Version: #2 SMP Tue Apr 28 20:29:12 CST 2009 OS Machine: i686 Processors: 1 Total Memory (MB): 1007.81 System Page Size (KB): 4.00 Processor Information - Vendor: Intel Processor family: Pentium Pro (P6) Brand: Intel(R) Pentium(R) M processor 2.00GHz Model (Type): (unknown) Revision: 8 Clock Speed: 800.00 MHz Cache and TLB Information - Cache levels: 2 Cache Details - Level 1: Type: Data Size: 32 KB Line size: 64 bytes Associativity: 8-way set associative Type: Instruction Size: 32 KB Line size: 64 bytes Associativity: 8-way set associative Level 2: Type: Unified Size: 2.00 MB Line size: 64 bytes Associativity: 8-way set associative TLB Details - Level 1: Type: Data Entries: 8 Pagesize (KB): 4096 Associativity: 4-way set associative Type: Instruction Entries: 2 Pagesize (KB): 4096 Associativity: Fully associative Type: Data Entries: 128 Pagesize (KB): 4 Associativity: 4-way set associative Type: Instruction Entries: 128 Pagesize (KB): 4 Associativity: 4-way set associative The "-e" (or "--events") option is not supported on this system The last line tells that the native event list is currently not available. However, "papi_native_avail" can give the native event list as expected. It seems that the source code of psinv relies on libpfm API to retrieve the native event list. Then does it mean that libpfm is a MUST requirement to get the support for NATIVE event? Then I tried to configure and build perfsuite with "-with-pfm PFM_CPPFLAGS=-I/usr/local/papi-3.6.2/include FPM_LDFLAGS=-L/usr/local/papi-3.6.2/lib" options, which specify the libpfm built with PAPI. (That is, papi built a libpfm internally.) However, the building process failed with following message: .... gcc -DHAVE_CONFIG_H -I. -I../.. -I../../src/libperfsuite -DPS_DATADIR= \"/usr/local/perfsuite-0.6.2/share/perfsuite/xml/pshwpc\" -DPS_DTDDIR= \"/usr/local/perfsuite-0.6.2/share/perfsuite/dtds/pshwpc\" -I/usr/local/papi-3.6.2/include -I/usr/local/papi-3.6.2/include -g -O2 -MT hwpc.lo -MD -MP -MF .deps/hwpc.Tpo -c hwpc.c -fPIC -DPIC -o .libs/hwpc.o hwpc.c:138:28: error: hwpc-perfmon2.h: No such file or directory hwpc.c: In function 'set_package': hwpc.c:2192: error: 'get_num_counters_perfmon' undeclared (first use in this function) hwpc.c:2192: error: (Each undeclared identifier is reported only once hwpc.c:2192: error: for each function it appears in.) hwpc.c:2193: error: 'get_max_counters_perfmon' undeclared (first use in this function) hwpc.c:2194: error: 'init_counters_perfmon' undeclared (first use in this function) hwpc.c:2195: error: 'start_counters_perfmon' undeclared (first use in this function) hwpc.c:2196: error: 'read_counters_perfmon' undeclared (first use in this function) hwpc.c:2197: error: 'stop_counters_perfmon' undeclared (first use in this function) hwpc.c:2198: error: 'destroy_counters_perfmon' undeclared (first use in this function) hwpc.c:2199: error: 'init_profiling_perfmon' undeclared (first use in this function) hwpc.c:2200: error: 'start_profiling_perfmon' undeclared (first use in this function) hwpc.c:2201: error: 'suspend_profiling_perfmon' undeclared (first use in this function) hwpc.c:2202: error: 'stop_profiling_perfmon' undeclared (first use in this function) make[4]: *** [hwpc.lo] Error 1 make[3]: *** [all-recursive] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2 It seems that hwpc-perfmon2.h doesn't exist. How to solve it? Regards, Jie Jiang |