Hooray! We've need this one for a long time. Thanks Stefane. Note below that if we can detect revisions in the header, we can also adjust prototypes for the API for different kernel revs. I'll take a crack at that on the SiCortex machine. Is the below in CVS?
Phil On Apr 3, 2008, at 10:12 AM, stephane eranian wrote: > Hello, > > I got tired of having to maintain different revisions for libpfm, one > each time the perfmon syscalls > change. Sometimes back ward compatibility is not possible because the > perfmon API/ABI changed. > But nowadays, changes are happening inside the kernel not so much at > the user level. > > There have been several new system calls in recent kernels. Those push > the perfmon syscalls up > on every architectures. > > Libpfm provides the syscall stubs to call the kernel perfmon API. > Those stubs will eventually migrate > into libc. The syscall numbers were kept in include/perfmon/perfmon.h > and had to be updated for each > new kernel version. The problem is that backward compatibility > (whenever possible) was not provided. > > I have created the attached patch to address this problem. The same > libpfm can now be used between > kernel revisions as long as the perfmon API does not change. This is, > for instance, the case between > 2.6.24 and 2.6.25 for instance. The trick is to have the code > autodetect the kernel version and adjust > the syscall accordingly. Another solution would have been to have the > kernel export the base syscall > number via, let's say, /sys/kernel/perfmon/syscall. > > I am still hoping we will be in mainline soon, or at least that we > will get a fixed block of syscalls soon, > at which point, all of this will not be needed anymore, except for > special platforms such as Cray. > > I have tested the attached patch on 2.6.25 on X86-64, i386. Please > test it on your platforms and > report any problem. > > Thanks. > <libpfm- > syscall > .diff > > > ------------------------------------------------------------------------- > Check out the new SourceForge.net Marketplace. > It's the best place to buy or sell services for > just about anything Open Source. > http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace_______________________________________________ > perfmon2-devel mailing list > perfmon2-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/perfmon2-devel ------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace _______________________________________________ perfmon2-devel mailing list perfmon2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/perfmon2-devel