[PATCH] nvme/pci: default to simple suspend
Vidya Sagar
vidyas at nvidia.com
Tue Feb 1 09:49:45 PST 2022
Tested-by: Vidya Sagar <vidyas at nvidia.com>
Tested on Tegra194 platform with a Phison E12 NVMe drive.
On 2/1/2022 10:20 PM, Keith Busch wrote:
> External email: Use caution opening links or attachments
>
>
> There is no complete set of attributes a driver can check to know if
> nvme power management is the correct thing to do in a runtime suspend
> situation. Every attempt so far to optimize idle power consumption and
> resume latency for a particular platform just leads to regressions
> elsewhere.
>
> Default to the simple shutdown since it is the historically safest
> option, and provide a user parameter to override it if the user knows
> it's safe to use for their platform.
>
> Link: https://bugzilla.kernel.org/show_bug.cgi?id=215467
> Cc: Rafael Wysocki <rafael.j.wysocki at intel.com>
> Cc: Vidya Sagar <vidyas at nvidia.com>
> Signed-off-by: Keith Busch <kbusch at kernel.org>
> ---
> drivers/nvme/host/pci.c | 7 ++++++-
> 1 file changed, 6 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
> index d8585df2c2fd..7e25cdef09a2 100644
> --- a/drivers/nvme/host/pci.c
> +++ b/drivers/nvme/host/pci.c
> @@ -103,6 +103,10 @@ static bool noacpi;
> module_param(noacpi, bool, 0444);
> MODULE_PARM_DESC(noacpi, "disable acpi bios quirks");
>
> +static bool pwr_mgmt;
> +module_param(pwr_mgmt, bool, 0444);
> +MODULE_PARM_DESC(pwr_mgmt, "use nvme power management for runtime suspend");
> +
> struct nvme_dev;
> struct nvme_queue;
>
> @@ -3094,7 +3098,8 @@ static int nvme_probe(struct pci_dev *pdev, const struct pci_device_id *id)
> dev_info(&pdev->dev,
> "platform quirk: setting simple suspend\n");
> quirks |= NVME_QUIRK_SIMPLE_SUSPEND;
> - }
> + } else if (!pwr_mgmt)
> + quirks |= NVME_QUIRK_SIMPLE_SUSPEND;
>
> /*
> * Double check that our mempool alloc size will cover the biggest
> --
> 2.25.4
>
More information about the Linux-nvme
mailing list