On Thu, Dec 05, 2024 at 05:29:00PM -0600, Bjorn Helgaas wrote: > On Sat, Nov 23, 2024 at 02:31:13PM +0530, Manivannan Sadhasivam wrote: > > On Fri, Nov 22, 2024 at 04:20:50PM -0600, Bjorn Helgaas wrote: > > > On Mon, Nov 18, 2024 at 01:53:44PM +0530, Manivannan Sadhasivam wrote: > > > > PCI core allows users to configure the D3Cold state for each PCI > > > > device through the sysfs attribute > > > > '/sys/bus/pci/devices/.../d3cold_allowed'. This attribute sets > > > > the 'pci_dev:d3cold_allowed' flag and could be used by users to > > > > allow/disallow the PCI devices to enter D3Cold during system > > > > suspend. > ... > > We did attempt to solve this problem in multiple ways, but the > > lesson learned was, kernel cannot decide the power mode without help > > from userspace. That's the reason I wanted to make use of this > > 'd3cold_allowed' sysfs attribute to allow userspace to override the > > D3Cold if it wants based on platform requirement. > > It seems sub-optimal that this only works how you want if the user > intervenes. Oops, I think I got this part backwards. The patch uses PCI PM if d3cold_allowed is set, and it's set by default, so it does what you need for the Qualcomm platform *without* user intervention. But I guess using the flag allows users in other situations to force use of NVMe power management by clearing d3cold_allowed via sysfs. Does that mean some unspecified other platforms might only work correctly with that user intervention?