Michael, On Wed, Apr 18, 2007 at 11:05:19AM +0200, Michael Kluge wrote: > > I observed one strange thing. I can build libpfm to support Montecito > only and not generic IA64 and Itanium I&II. But I can not do this with > pfmon. I can change config.mk accordingly but linking fails with > unresolved symbols: > Yes, that is a difference between libpfm and pfmon. With libpfm you can fine tune which PMU you want. For pfmon, I got lazy and grouped by instruction set architectures because it seems overkill to separate at a lower level. It is likely that I will also use coarser #ifdef for libpfm as that would make the config simpler. I cannot think of a reason why one would want McKinley only support, for instance.
> gcc -o pfmon pfmon.o pfmon_smpl.o pfmon_util.o pfmon_system.o > pfmon_task.o pfmon_symbols.o pfmon_results.o pfmon_hash.o > pfmon_smpl_dfl.o pfmon_os.o pfmon_util_ia64.o pfmon_montecito.o -O2 -g > -Wall -Werror -D_REENTRANT -I/usr/local/include -DCONFIG_PFMON_IA64 > -DPFMON_DEBUG -DDATADIR=\"/usr/local/share/pfmon\" -I. > -I/usr/include/libelf -DCONFIG_PFMON_DEMANGLE -D_GNU_SOURCE > -DCONFIG_PFMON_IA64 -DPFMON_DEBUG -g -DCONFIG_PFMON_MONTECITO -static > smpl_mod/libsmplfmt.a -L/usr/local/lib -lpfm -L/usr/lib -liberty > -lpthread -lelf -lm -lrt -ldl > smpl_mod/libsmplfmt.a(dear_itanium.o): In function `dear_ita_info': > /root/pfmon/pfmon/smpl_mod/dear_itanium.c:32: undefined reference to > `pfm_ita_is_dear' > /root/pfmon/pfmon/smpl_mod/dear_itanium.c:33: undefined reference to > `pfm_ita_is_dear_tlb' > smpl_mod/libsmplfmt.a(dear_itanium2.o): In function `dear_ita2_info': > /root/pfmon/pfmon/smpl_mod/dear_itanium2.c:34: undefined reference to > `pfm_ita2_is_dear' > /root/pfmon/pfmon/smpl_mod/dear_itanium2.c:35: undefined reference to > `pfm_ita2_is_dear_alat' > /root/pfmon/pfmon/smpl_mod/dear_itanium2.c:35: undefined reference to > `pfm_ita2_is_dear_tlb' > > Would it be possible to get rid of this stuff and create a version of > pfmon that is only aware of Montecito? > > > Regards, Michael > > > Michael Kluge wrote: > > Hi Stephane, > > > > /usr/bin/pfmon is a link to /usr/local/bin/pfmon. profile.pl is using an > > absoulte path to pfmon, so I had to set up this link. > > > > > > Regards, Michael > > > > Stephane Eranian wrote: > >> Michael, > >> > >> On Tue, Apr 17, 2007 at 09:37:46AM +0200, Michael Kluge wrote: > >>>>> mars:~ # /usr/bin/pfmon ...... sequential > >>>>> cannot write PMCs: Invalid argument > >>>>> session interrupted by user > >>>>> mars:~ # ldd /usr/bin/pfmon > >>>>> linux-gate.so.1 => (0xa000000000000000) > >>>>> libpfm.so.3 => /usr/local/lib/libpfm.so.3 (0x2000000000068000) > >>>>> libpthread.so.0 => /lib/libpthread.so.0 (0x20000000000d0000) > >>>>> libelf.so.0 => /usr/lib/libelf.so.0 (0x2000000000108000) > >>>>> libm.so.6.1 => /lib/libm.so.6.1 (0x2000000000148000) > >>>>> librt.so.1 => /lib/librt.so.1 (0x2000000000218000) > >>>>> libdl.so.2 => /lib/libdl.so.2 (0x2000000000238000) > >>>>> libc.so.6.1 => /lib/libc.so.6.1 (0x2000000000250000) > >>>>> /lib/ld-linux-ia64.so.2 (0x2000000000000000) > >>>>> mars:~ # ls -la /usr/local/lib/libpfm.so.3 > >>>>> lrwxrwxrwx 1 root root 15 Apr 16 19:55 /usr/local/lib/libpfm.so.3 -> > >>>>> libpfm.so.3.2.0 > >>>>> mars:~ # ls -la /usr/local/lib/libpfm.so.3.2.0 > >>>>> -rwxr-xr-x 1 root root 535372 Apr 16 19:55 > >>>>> /usr/local/lib/libpfm.so.3.2.0 > >>>>> > >>> pfm_write_pmcs.2924: CPU0 [8430] pmc0 is unimplemented or no-access > >>> pmc_type=41 > >>> sys_perfmonctl.4938: CPU0 [8430] context unlocked > >>> sys_perfmonctl.4939: CPU0 [8430] spinlock_irq_restore ctx > >>> e000801aeec28000 by [8430] > >>> sys_perfmonctl.4951: CPU0 [8430] cmd=pfm_write_pmcs ret=-22 > >> Pfmon is trying to write pmc0 which is not accessible on Montecito. > >> I have seen this before and it was du to some mismatch between pfmon and > >> libpfm. > >> > >> If you did make and make install in libpfm without changing the config.mk, > >> then you > >> get libpfm.so in /usr/local/lib. > >> > >> Similarly, if you typed make and make install with pfmon, you have it in > >> /usr/local/bin. > >> Yet it seems for your output above that you find it in /usr/bin. Are you > >> using the right > >> pfmon? Simply try running pfmon from the directory you compiled it in. > >> > >> -- > >> -Stephane > > > > > > > -- > ____________________________________________ > Michael Kluge, M.Sc. > > Technische Universität Dresden > Center for Information Services and > High Performance Computing (ZIH) > D-01062 Dresden > Germany > > Contact: > Willersbau, Room HRSK 151 > Phone: (+49) 351 463-32424 > Fax: (+49) 351 463-37773 > e-mail: [EMAIL PROTECTED] > WWW: http://www.tu-dresden.de/zih -- -Stephane _______________________________________________ perfmon mailing list [email protected] http://www.hpl.hp.com/hosted/linux/mail-archives/perfmon/
