[lkml]   [2019]   [Sep]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH] leds: remove PAGE_SIZE limit of /sys/class/leds/<led>/trigger
On 9/3/19 4:21 PM, Akinobu Mita wrote:
> 2019年9月3日(火) 23:07 Greg KH <>:
>> On Tue, Sep 03, 2019 at 10:55:40PM +0900, Akinobu Mita wrote:
>>> 2019年9月3日(火) 4:08 Greg KH <>:
>>>> On Mon, Sep 02, 2019 at 08:47:02PM +0200, Jacek Anaszewski wrote:
>>>>> On 9/2/19 8:12 PM, Greg KH wrote:
>>>>>> On Sun, Sep 01, 2019 at 06:53:34PM +0200, Jacek Anaszewski wrote:
>>>>>>> Hi Akinobu,
>>>>>>> Thank you for the patch.
>>>>>>> I have one nit below but in general it looks good to me.
>>>>>>> I've tested it with 2000 mtd triggers (~14kB file size)
>>>>>>> and it worked flawlessly.
>>>>>>> Still, I would like to have ack from Greg for it.
>>>>>>> Adding Greg on Cc.
>>>>>>> On 8/29/19 4:49 PM, Akinobu Mita wrote:
>>>>>>>> Reading /sys/class/leds/<led>/trigger returns all available LED triggers.
>>>>>>>> However, the size of this file is limited to PAGE_SIZE because of the
>>>>>>>> limitation for sysfs attribute.
>>>>>>>> Enabling LED CPU trigger on systems with thousands of CPUs easily hits
>>>>>>>> PAGE_SIZE limit, and makes it impossible to see all available LED triggers
>>>>>>>> and which trigger is currently activated.
>>>>>>>> This converts /sys/class/leds/<led>/trigger to bin attribute and removes
>>>>>>>> the PAGE_SIZE limitation.
>>>>>> But this is NOT a binary file. A sysfs binary file is used for when the
>>>>>> kernel passes data to or from hardware without any parsing of the data
>>>>>> by the kernel.
>>>>>> You are not doing that here, you are abusing the "one value per file"
>>>>>> rule of sysfs so much that you are forced to work around the limitation
>>>>>> it put in place on purpose to keep you from doing stuff like this.
>>>>>> Please fix this "correctly" by creating a new api that works properly
>>>>>> and just live with the fact that this file will never work correctly and
>>>>>> move everyone to use the new api instead.
>>>>>> Don't keep on abusing the interface by workarounds like this, it is not
>>>>>> ok.
>>>>> In the message [0] you pledged to give us exception for that, provided
>>>>> it will be properly documented in the code. I suppose you now object
>>>>> because the patch does not meet that condition.
>>>> Well, I honestly don't remember writing that email, but it was 5 months
>>>> and many thousands of emails ago :)
>>>> Also, you all didn't document the heck out of this. So no, I really do
>>>> not want to see this patch accepted as-is.
>>>>> Provided that will be fixed, can we count on your ack for the
>>>>> implementation of the solution you proposed? :-)
>>>> Let's see the patch that actually implements what I suggested first :)
>>> I'd propose introducing a new procfs file (/proc/led-triggers) and new
>>> /sys/class/leds/<led>/current-trigger api.
>>> Reading /proc/led-triggers file shows all available triggers.
>>> This violates "one value per file", but it's a procfs file.
>> No, procfs files are ONLY for process-related things. Don't keep the
>> insanity of this file format by just moving it out of sysfs and into
>> procfs :)
> I see.
> How about creating one file or directory for each led-trigger in
> /sys/kernel/led-triggers directory?
> e.g.
> $ ls /sys/kernel/led-triggers
> audio-micmute ide-disk phy0assoc
> audio-mute kbd-altgrlock phy0radio
> ...
> hidpp_battery_3-full panic
I think that /sys/class/leds/triggers would better reflect the reality.
After all LED Trigger core belongs to LED subsystem.

Best regards,
Jacek Anaszewski

 \ /
  Last update: 2019-09-03 20:19    [W:0.046 / U:29.000 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site