William Cohen wrote: > Hello Stephane, > > The oprofile patch should be made against the oprofile cvs rather than > the 0.9.2 tarball. There are some files that the patch touches that are > created by the autogen.sh. > > The oprofile patch doesn't build if things are configured without the > "--enable-perfmon2". > > gcc -W -Wall -fno-common -Wdeclaration-after-statement > -fno-omit-frame-pointer -g -O2 -o oprofiled init.o oprofiled.o > opd_stats.o opd_sfile.o opd_kernel.o opd_trans.o opd_cookie.o > opd_events.o opd_mangling.o opd_perfmon.o opd_perfmon_22.o > opd_perfmon_compat.o opd_anon.o liblegacy/liblegacy.a ../libabi/libabi.a > ../libdb/libodb.a ../libop/libop.a ../libutil/libutil.a -lpopt -liberty > -ldl > opd_perfmon.o: In function `perfmon_init': > /home/wcohen/research/profiling/oprofile/oprofile-0.9.2-perfmon2/daemon/opd_perfmon.c:384: > undefined reference to `do_perfmon_init' > collect2: ld returned 1 exit status > > -Will Hi Stephane, I tweaked the oprofile patch a bit so that it applies to the oprofile cvs repository and builds with and without being configured with --enable-perfmon2. The patch is attached. Things that will need to be done to the patch: -handle case where perfmon pmd/pmc registers are unavailable Is the method being used going to work for systemwide perfmon? create a thread local context then collect unavail regs. What happens if another thread using a register that is marked available in the current thread? -handle naming differences between oprofile events and perfmon2 -general cleanup -Will