Re: [PATCH] perf/core: move all of the pmu devices into their own location
From: Greg Kroah-Hartman
Date: Tue Feb 04 2025 - 11:28:31 EST
On Tue, Feb 04, 2025 at 09:06:18AM -0500, Liang, Kan wrote:
>
>
> On 2025-02-04 5:16 a.m., Greg Kroah-Hartman wrote:
> > On Tue, Feb 04, 2025 at 09:41:03AM +0200, Alexander Shishkin wrote:
> >> Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> writes:
> >>
> >>> In sysfs, for some reason, all pmu devices seem to show up in the "root"
> >>> of /sys/devices/ making for a confusing mess as these devices are not
> >>> really at the root of the system at all.
> >>>
> >>> Create a fake root devices, "pmu_bus" and place them all under there if
> >>> they do not already have a parent device set, cleaning up sysfs to look
> >>> more sane.
> >>
> >> Yeah, so what happens to the userspace that uses them via /sys/devices/*
> >> directly? Even I have scripts that do that.
> >
> > You should never be doing that, as you have no idea what type of devices
> > are in that location in the tree. You should be doing what the
> > documentation says to do, and look in /sys/bus/event_source/devices/
> > instead. That didn't change here.
> >
>
> Not just the script, the /sys/devices/ is also used in the current perf
> tool. For example,
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/perf/util/mem-events.c#n192
>
> And the comments and document in the perf tool.
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/perf/util/pmu.c#n39
Note, this file looks to work properly, it's just the comment that is
incorrect.
Any hints on what perf command or test I should run to verify I did get
this all right?
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/perf/Documentation/perf-list.txt#n191
I'll fix that.
> I think it should bring big impact for the end user, especially when
> they still use an older perf tool and script.
It seems that the majority of the perf code IS looking in the correct
place, just mem-events.c seemed wrong.
thanks,
greg k-h