From: Rick K. <rk...@il...> - 2009-05-08 15:55:04
|
Jie, The things you are describing are slightly confusing, I admit. Let me see if I can clear it up a little: The most important thing to understand is that native events are supported when using PAPI (as you are). The syntax in the configuration document (supplied via -c option to psrun or through PS_HWPC_CONFIG environment variable) is slightly different, though. You can find an example in $PREFIX/share/perfsuite/xml/pshwpc/papi3_ipc_itanium2.xml However, as you note, the psinv command will not report native events on your platform; for that, an interface to the underlying performance monitor library has to be present (this would be either perfctr or perfmon). Even though it does not report them, they are still usable as described above. You probably want to obtain the native event names through the papi_native_avail command, which apparently works on your platform. Your system (and many people's) is actually using a combination of perfctr and perfmon2 software. Perfctr is the actual driver in the kernel, but the perfmon2 user library (libpfm) is used by PAPI to map event names to actual register settings. The error you see when configuring using the "--with-pfm" option is a known bug that will be fixed in an upcoming release. Perfmon2 support does not currently exist in PerfSuite; it is only for a 2.4 IA-64 kernel that this may be used. "configure" should have failed with an appropriate informational message for you (but did not, that is the bug). I hope this clears things up - please let us know if this does not answer your questions fully. Rick jj...@nu... wrote: > 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 > > > > > > > ------------------------------------------------------------------------------ > The NEW KODAK i700 Series Scanners deliver under ANY circumstances! Your > production scanning environment may not be a perfect world - but thanks to > Kodak, there's a perfect scanner to get the job done! With the NEW KODAK i700 > Series Scanner you'll get full speed at 300 dpi even with all image > processing features enabled. http://p.sf.net/sfu/kodak-com > _______________________________________________ > PerfSuite-users mailing list > Per...@li... > https://lists.sourceforge.net/lists/listinfo/perfsuite-users > > |