• Christophe Leroy's avatar
    gpio: sysfs: avoid using kstrtol() in 'value' attribute write · 1efba35a
    Christophe Leroy authored
    A 'perf record' on an app continuously writing in the 'value'
    attribute show that most of the time is spent in kstrtol()
    
    --17.99%--value_store
              |
              |--10.17%--kstrtoint
              |          |
              |          |--8.82%--kstrtoll
              |
              |--2.50%--gpiod_set_value_cansleep
              |
              |--1.82%--u16_gpio_set
              |
              |--1.46%--value_store
    
    The normal case is to write 0 or 1 in the attribute, therefore
    this patch avoids the call to kstrtol() in the most common cases
    
    Then 'perf record' shows
    
    --7.21%--value_store
              |
              |--2.69%--u16_gpio_set
              |
              |--1.47%--value_store
              |
              |--1.08%--gpiod_set_value_cansleep
              |
              |--0.60%--mutex_lock
              |
               --0.58%--mutex_unlock
    Signed-off-by: default avatarChristophe Leroy <christophe.leroy@c-s.fr>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    1efba35a
gpiolib-sysfs.c 19.5 KB