Seeking help addressing maintainer objections
Ian Pilcher
arequipeno at gmail.com
Wed Apr 3 09:00:28 EDT 2024
On 4/3/24 06:38, Bjørn Mork wrote:
> Ian Pilcher <arequipeno at gmail.com> writes:
>
>> The maintainer of the LEDs subsystem considers this interface to be
>> "crazy", but he has not suggested any alternative.[3]
>
> I read a strong suggestion that one of the unlink interfaces is
> dropped.
>
> You should probably read "crazy" as "unjustified".
>
>> (I have not been able to find any existing example of configuring
>> many-to-many relationships via sysfs.)
>
> There's at least one such example, hidden under drivers/usb:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/usb/core/ledtrig-usbport.c
>
> See the initial commit for justification and some of the background for
> the choices made:
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/usb/core/ledtrig-usbport.c?id=0f247626cbbfa2010d2b86fdee652605e084e248
Thanks! Will take a look at that.
>> The second problem is the use of device file paths (including symbolic
>> link resolution), rather than kernel names, when creating associations.
>> This limitation exists because the block subsystem does not provide an
>> API to open a block device by its kernel name; only device file paths
>> and device numbers (major & minor) are supported.
>
> So this explains why you can't have link_dev_by_path. It still does not
> explain why you need unlink_dev_by_name.
It's not absolutely needed, but it does make it easier to unlink an LED
from all devices by using the names of the symlinks in the LED's
linked_devices directory, which will be kernel names.
> And if file name with symlink resolution really is a problem, then why
> can't you use the major:minor for link/unlink? That's easy for
> userspace to look up whether the input is a device path or a sysfs path.
> And it avoids having to wait for an unrelated and unnecessary device
> path creation.
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/usb/core/ledtrig-usbport.c
>
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/usb/core/ledtrig-usbport.c?id=0f247626cbbfa2010d2b86fdee652605e084e248
Personally, I don't think that using file paths is a problem, and it
can be useful. ("/dev/vg_root/lv_root" is probably more useful than
"dm-0".) OTOH, "sda" is slightly simpler than "/dev/sda", so I think
that the ideal situation would be to have both interfaces available.
I did propose using device numbers. I never received a response from
the maintainer.
Thanks for taking the time to respond to this!
--
========================================================================
If your user interface is intuitive in retrospect ... it isn't intuitive
========================================================================
More information about the Kernelnewbies
mailing list