On 9/3/19 4:21 PM, Akinobu Mita wrote: > 2019年9月3日(火) 23:07 Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx>: >> >> On Tue, Sep 03, 2019 at 10:55:40PM +0900, Akinobu Mita wrote: >>> 2019年9月3日(火) 4:08 Greg KH <gregkh@xxxxxxxxxxxxxxxxxxx>: >>>> >>>> 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