On Tue, Mar 10, 2020 at 12:59 PM Andi Kleen <ak@xxxxxxxxxxxxxxx> wrote: > > On Tue, Mar 10, 2020 at 11:50:03AM -0700, Ian Rogers wrote: > > This patch links perf with the libpfm4 library. > > This library contains all the hardware event tables for all > > processors supported by perf_events. This is a helper library > > that help convert from a symbolic event name to the event > > encoding required by the underlying kernel interface. This > > library is open-source and available from: http://perfmon2.sf.net. > > For most CPUs the builtin perf JSON event support should make > this redundant. > We decided to post this patch to propose an alternative to the JSON file approach. It could be an option during the build. The libpfm4 library has been around for 15 years now. Therefore, it supports a lot of processors core and uncore and it is very portable. The key value add I see is that this is a library that can be, and has been, used by tool developers directly in their apps. It can work with more than Linux perf_events interface. It is not tied to the interface. It has well defined and documented entry points. We do use libpfm4 extensively at Google in both the perf tool and applications. The PAPI toolkit also relies on this library. I don't see this as competing with the JSON approach. It is just an option I'd like to offer to users especially those familiar with it in their apps. > Perhaps you could list what CPUs it actually supports over > the existing JSON tables. > > If it's only a few it would be likely better to add > appropiate json files. > > If it's a massive number it might be useful, although > JSON support would be better for those too. > > -Andi