Re: [PATCH 3/3] nvme: Enable autonomous power state transitions

From: Andy Lutomirski
Date: Tue Aug 30 2016 - 16:21:51 EST


On Mon, Aug 29, 2016 at 4:16 PM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
> On Aug 29, 2016 8:07 AM, "J Freyensee"
> <james_p_freyensee@xxxxxxxxxxxxxxx> wrote:
>>
>> On Mon, 2016-08-29 at 02:25 -0700, Andy Lutomirski wrote:
>> > NVME devices can advertise multiple power states. These states can
>> > be either "operational" (the device is fully functional but possibly
>> > slow) or "non-operational" (the device is asleep until woken up).
>> > Some devices can automatically enter a non-operational state when
>> > idle for a specified amount of time and then automatically wake back
>> > up when needed.
>> >

>>
>> > + /*
>> > + * By default, allow up to 25ms of APST-induced
>> > latency. This will
>> > + * have no effect on non-APST supporting controllers (i.e.
>> > any
>> > + * controller with APSTA == 0).
>> > + */
>> > + ctrl->apst_max_latency_ns = 25000000;
>>
>> Is it possible to make that a #define please?
>
> I'll make it a module parameter as Keith suggested.

One question, though: should we call this and the sysfs parameter
apst_max_latency or should it be more generically
power_save_max_latency? The idea is that we might want to support
non-automonous transitions some day or even runtime D3. Or maybe
those should be separately configured if used.

--Andy