Re: [PATCH] perf/core: move all of the pmu devices into their own location

Liang, Kan
2025-02-04T14:06:21Z

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@linuxfoundation.org> 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
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/perf/Documentation/perf-list.txt#n191

I think it should bring big impact for the end user, especially when
they still use an older perf tool and script.

Thanks,
Kan

> Again, system topology can, and will, change all the time in
> /sys/devices/ so expect that. The only "stable" locations are the
> symlinks in the /sys/bus/ and /sys/class/ locations, which is why those
> symlinks are present.
>
> Been that way for over a decade now :)
>
> thanks,
>
> greg k-h