Message ID | 20220207090443.3710425-1-massimo.toscanelli@leica-geosystems.com (mailing list archive) |
---|---|
Headers | show |
Series | Solve data access delay of ST sensors | expand |
On Mon, 7 Feb 2022 09:04:41 +0000 Massimo Toscanelli <massimo.toscanelli@leica-geosystems.com> wrote: > Reading raw data from ST sensors implies enabling the device and > waiting for its activation. > This leads to significant delays every time the data is fetched, > especially if the operation has to be repeated. > > The introduction of the 'always_on' flag as sysfs attribute can > solve this issue, by allowing the user to keep the device enabled > during the entire read session and therefore, to perform a much > faster data access. > > This implementation has been already tested on a ST magnetometer. > > I forgot to add maintainers as recepients, so I resend the patches. > > Massimo Toscanelli (2): > iio: st_sensors: add always_on flag > iio: st_magn_core.c: activate always_on attribute > > .../iio/common/st_sensors/st_sensors_core.c | 85 +++++++++++++++++-- > drivers/iio/magnetometer/st_magn_core.c | 2 + > include/linux/iio/common/st_sensors.h | 14 +++ > 3 files changed, 96 insertions(+), 5 deletions(-) > > > base-commit: dcb85f85fa6f142aae1fe86f399d4503d49f2b60 Hi Massimo, The standard approach to avoiding rapid power up and power down cycles is to use runtime_pm with autosuspend and a period set at a period of perhaps 1 second. Would that work for you? You'll pay the costs of power up only on the first read after a period of not reading. Exposing the control to userspace for this sort of thing is normally a bad idea because userspace generally has no idea if it should use it as there is no clean way of telling userspace the costs of not using it (as those will be device specific). If you have a usecase that requires regular reading you should also think about whether using the buffered interface is more appropriate. IIRC that will keep these devices powered up continuously whilst the buffer is enabled and will provide a lower overhead way of reading data than sysfs reads. Jonathan
On Mon, Feb 7, 2022 at 2:59 PM Jonathan Cameron <Jonathan.Cameron@huawei.com> wrote: > On Mon, 7 Feb 2022 09:04:41 +0000 > Massimo Toscanelli <massimo.toscanelli@leica-geosystems.com> wrote: > The standard approach to avoiding rapid power up and power down cycles > is to use runtime_pm with autosuspend and a period set at a period > of perhaps 1 second. Would that work for you? You'll pay the costs > of power up only on the first read after a period of not reading. > > Exposing the control to userspace for this sort of thing is normally > a bad idea because userspace generally has no idea if it should use it > as there is no clean way of telling userspace the costs of not using > it (as those will be device specific). > > If you have a usecase that requires regular reading you should also > think about whether using the buffered interface is more appropriate. > IIRC that will keep these devices powered up continuously whilst > the buffer is enabled and will provide a lower overhead way of > reading data than sysfs reads. I see that I have repeted similar comments. Sorry for the hammering. I agree with Jonathan's stance here. Yours, Linus Walleij
Hello Linus and Jonathan > -----Original Message----- > From: Linus Walleij <linus.walleij@linaro.org> > Sent: 11 February 2022 02:12 > To: Jonathan Cameron <Jonathan.Cameron@huawei.com> > Cc: TOSCANELLI Massimo <massimo.toscanelli@leica-geosystems.com>; > linux-kernel@vger.kernel.org; jic23@kernel.org; lars@metafoo.de; > caihuoqing@baidu.com; aardelean@deviqon.com; > andy.shevchenko@gmail.com; hdegoede@redhat.com; LI Qingwu <qing- > wu.li@leica-geosystems.com.cn>; stephan@gerhold.net; linux- > iio@vger.kernel.org; GEO-CHHER-bsp-development <bsp- > development.geo@leica-geosystems.com> > Subject: Re: [PATCH RESEND 0/2] Solve data access delay of ST sensors > > > On Mon, Feb 7, 2022 at 2:59 PM Jonathan Cameron > <Jonathan.Cameron@huawei.com> wrote: > > On Mon, 7 Feb 2022 09:04:41 +0000 > > Massimo Toscanelli <massimo.toscanelli@leica-geosystems.com> wrote: > > > The standard approach to avoiding rapid power up and power down cycles > > is to use runtime_pm with autosuspend and a period set at a period of > > perhaps 1 second. Would that work for you? You'll pay the costs of > > power up only on the first read after a period of not reading. > > > > Exposing the control to userspace for this sort of thing is normally a > > bad idea because userspace generally has no idea if it should use it > > as there is no clean way of telling userspace the costs of not using > > it (as those will be device specific). > > > > If you have a usecase that requires regular reading you should also > > think about whether using the buffered interface is more appropriate. > > IIRC that will keep these devices powered up continuously whilst the > > buffer is enabled and will provide a lower overhead way of reading > > data than sysfs reads. > > I see that I have repeted similar comments. > Thanks a lot for your suggestions, I decided to go for the second solution proposed by Jonathan. Using the buffered interface should be enough, you can discard the patches. Massimo