public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>,
	Tejun Heo <tj@kernel.org>
Cc: rjw@rjwysocki.net, alan.cox@intel.com, linux-ide@vger.kernel.org,
	linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
	Mario.Limonciello@dell.com
Subject: Re: [RFC PATCH] ata: ahci: Enable DEVSLP by default on x86 modern standby platform
Date: Tue, 3 Jul 2018 12:21:50 +0200	[thread overview]
Message-ID: <660d4e4b-361f-e6b1-ef21-3985c321183a@redhat.com> (raw)
In-Reply-To: <fefe0ef4-e21f-72cc-18d6-a5a6693c21c6@redhat.com>

Hi,

On 03-07-18 10:57, Hans de Goede wrote:
> Hi,
> 
> On 03-07-18 00:08, Srinivas Pandruvada wrote:
>> Hi Hans,
>>
>> On Mon, 2018-07-02 at 23:27 +0200, Hans de Goede wrote:
> 
> <snip>
> 
>>>>> SATA IP block doesn't get turned off till SATA is in DEVSLP mode.
>>>>> Here
>>>>> user has to either use scsi-host sysfs or tools like powertop to
>>>>> set
>>>>> the sata-host link_power_management_policy to min_power.
>>>>>
>>>>> This change sets by default link power management policy to
>>>>> min_power
>>>>> for some platforms.  To avoid regressions, the following
>>>>> conditions
>>>>> are used:
>>>>> - The kernel config is already set to use med_power_with_dipm or
>>>>> deeper
>>>>> - System is a modern standby system using ACPI low power idle
>>>>> flag
>>>>> - The platform is not blacklisted for Suspend to Idle and suspend
>>>>> to idle is used instead of S3
>>>>> This combination will make sure that systems are fairly recent
>>>>> and
>>>>> since getting shipped with modern standby standby, the DEVSLP
>>>>> function
>>>>> is already validated.
>>>>>
>>>>> Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.int
>>>>> el.com>
>>>>
>>>> Seems sane to me.  Hans, what do you think?
>>>
>>> I think this is going in the right direction, but min_power enables
>>> both DEVSLP and HIPM, AFAIK Windows at least in the past did not
>>> enable HIPM be default.
>>
>> Windows and Linux will need to meet the same criteria to reach SLP_S0
>> state. OS is not deciding whether we meet criteria or not, it is
>> firmware deciding, and it will look for SATA IP to be in certain
>> predefined state, before generating this SLP_S0 signal.
>>
>>
>>> Srinivas can you figure out what Windows does wrt HIPM?
>>
>> We can see that under Windows the SATA rail voltage is dropped. I don't
>> know if there is any other method other than DEVSLP configuration. But
>> I will surely check around.
> 
> I understand that we need DEVSLP, but AFAIK DEVSLP is entered automatically
> after being in slumber for a defined time. The question is how we get into
> slumber. Currently with the new med_power_with_dipm policy we always use
> DIPM to enter slumber. Your suggested switch to min_power means also
> enabling HIPM. What I'm suggesting is that it might better to have
> DIPM + DEVSLP rather then DIPM + HIPM + DEVSLP.
> 
> So basically the question is does windows use:
> 
> a) DIPM + DEVSLP; or
> b) DIPM + HIPM + DEVSLP
> 
> If b. is the case, then I'm fine with your patch as is, but if Windows
> does a. then we should mimic that, which requires a new power-level as
> our min_power level is b.

So digging a bit deeper I just realized that another important difference
between med_power_with_dipm and min_power is that min_power by default
set the ASP bits making the link go to the slumber state instead of to
the partial (power-saving) state.

According to:
https://www.intel.com/content/dam/doc/reference-guide/sata-devices-implementation-recommendations.pdf

ASP defaults to off in the iRST drivers. But that is a document from
before DEVSLP got introduced.

So we need to know if Windows and/or the iRST drivers use HIPM and
ASP by default on these systems. If they do then using min_power
is fine. If they don't use one or the other we are going to need
a new policy reflecting those settings and use that.

Regards,

Hans


  reply	other threads:[~2018-07-03 10:21 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-02 19:08 [RFC PATCH] ata: ahci: Enable DEVSLP by default on x86 modern standby platform Srinivas Pandruvada
2018-07-02 20:21 ` Tejun Heo
2018-07-02 21:27   ` Hans de Goede
2018-07-02 22:08     ` Srinivas Pandruvada
2018-07-02 22:56       ` Mario.Limonciello
2018-07-03  8:57       ` Hans de Goede
2018-07-03 10:21         ` Hans de Goede [this message]
2018-07-06  0:52           ` Srinivas Pandruvada

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=660d4e4b-361f-e6b1-ef21-3985c321183a@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=Mario.Limonciello@dell.com \
    --cc=alan.cox@intel.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=srinivas.pandruvada@linux.intel.com \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox