Re: Should drivers like nvme let userspace control their latency via dev_pm_qos?

From: Andy Lutomirski
Date: Fri Sep 16 2016 - 12:20:44 EST

On Fri, Sep 16, 2016 at 8:54 AM, One Thousand Gnomes
<gnomes@xxxxxxxxxxxxxxxxxxx> wrote:
> On Fri, 16 Sep 2016 08:26:03 -0700
> Andy Lutomirski <luto@xxxxxxxxxx> wrote:
>> I'm adding power management to the nvme driver, and I'm exposing
>> exactly one knob via sysfs: the maximum permissible latency. This
>> isn't a power domain issue, and it has no dependencies -- it's
>> literally just the maximum latency that the driver may impose on I/O
>> for power saving purposes.
> Why is this in the driver. Surely the latency is a property of the
> request queue and the requests being made. Now it may well be that its
> implement as min(list-of-queues) but a device sysfs node seems a strange
> place to stick it.

I'm not sure what you mean. The whole device can be programmed to
take a nap when fully idle. The driver can limit how deep that nap is
and thus how long the next request can be delayed while the device
wakes back up.

Unlike the very small number of in-tree users of this type of
mechanism that I can find, there are no busses or hard tolerances
involved. The only effect is a power consumption vs I/O performance