On Thu, 4 Dec 2025 15:57:41 +0100 "Rafael J. Wysocki" <[email protected]> wrote:
> > perf timechart seem to do per-CPU reporting though? > > So this is broken by not emitting an event per-CPU? At least with a simple > > s/cpu_frequency/policy_frequency/ > > like here. > > Similar for the bpf samples technically... > > This kind of boils down to whether or not tracepoints can be regarded > as ABI and to what extent. They are an ABI and they are not an ABI. It really boils down to "if you break the ABI but no user space notices, did you really break the ABI?" the answer is "no". But if user space notices, then yes you did. But it is possible to still fix user space (I did this with powertop). > > In this particular case, I'm not sure I agree with the stated motivation. > > First of all, on systems with one CPU per cpufreq policy (the vast > majority of x86, including AMD, and the ARM systems using the CPPC > driver AFAICS), the "issue" at hand is actually a non-issue and > changing the name of the tracepoint alone would confuse things in user > space IIUC. Those need to work the way they do today. If the way the tracepoint changes, it's best to change the name too. Tooling can check to see which name is available to determine how to process the traces. > > On systems with multiple CPUs per cpufreq policy there is some extra > overhead related to the cpu_frequency tracepoint, but the if someone > is only interested in the "policy" frequency, they can filter out all > CPUs belonging to the same policy except for one from the traces, > don't they? I'm not exactly sure what you mean here. There is an "onchange" trigger you can use to trigger a synthetic event whenever a change happens. But I think the data here wants to know which CPU had its policy change. Hence the CPU mask. -- Steve
