Userland breakage from "Modify the device name as devfreq(X) for sysfs"

From: John Stultz
Date: Tue May 08 2018 - 19:17:42 EST


Hey folks,
I wanted to bring up an issue we've recently tripped over, which was
caused by 4585fbcb5331f ("PM / devfreq: Modify the device name as
devfreq(X) for sysfs").
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit?id=4585fbcb5331fc910b7e553ad3efd0dd7b320d14

That patch replaced paths like:
/sys/class/devfreq/ddr_devfreq/min_freq
and
/sys/class/devfreq/e82c0000.mali/min_freq

With
/sys/class/devfreq/devfreq(0)/min_freq
and
/sys/class/devfreq/devfreq(1)/min_freq


This broke userspace we have that needs to work on 4.4, 4.9 and 4.14 (and on).

I wanted to try to ask to understand more about the rational for this
patch, as it doesn't make much sense to me, particularly as now it is
less obvious as to which path is for which device - and more
worrisome it could change depending on initialization order.

Unfortunately, this wasn't noticed very quickly, as the patch has been
upstream now for some time. But I wanted to better understand why
this change was made, and see if we might consider reverting it, or
alternatively consider provide multiple sysfs links (both dev_name and
devfreq(N)) so that we can preserve compatibility?

Thoughts?
-john