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/

Reply via email to