public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "David E. Box" <david.e.box@linux.intel.com>
To: Daniel Drake <drake@endlessos.org>
Cc: Bjorn Helgaas <helgaas@kernel.org>,
	tglx@linutronix.de, mingo@redhat.com,  bp@alien8.de,
	dave.hansen@linux.intel.com, x86@kernel.org, hpa@zytor.com,
	 linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	bhelgaas@google.com,  mario.limonciello@amd.com,
	rafael@kernel.org, lenb@kernel.org,  linux-acpi@vger.kernel.org,
	linux@endlessos.org
Subject: Re: [PATCH v2 1/2] PCI: Disable D3cold on Asus B1400 PCI-NVMe bridge
Date: Fri, 09 Feb 2024 09:19:19 -0800	[thread overview]
Message-ID: <ecb40fbc2dc50cc2ebe7cc5393c2b0d6da58e4f3.camel@linux.intel.com> (raw)
In-Reply-To: <CAD8Lp44tO_pz_HZmPOKUQ-LEQT=c856eH52xWL9nBtAtJwjL1g@mail.gmail.com>

On Fri, 2024-02-09 at 09:36 +0100, Daniel Drake wrote:
> On Thu, Feb 8, 2024 at 5:57 PM David E. Box <david.e.box@linux.intel.com>
> wrote:
> > This does look like a firmware bug. We've had reports of D3cold support
> > missing
> > when running in non-VMD mode on systems that were designed with VMD for
> > Windows.
> > These issues have been caught and addressed by OEMs during enabling of Linux
> > systems. Does D3cold work in VMD mode?
> 
> On Windows for the VMD=on case, we only tested this on a BIOS with
> StorageD3Enable=0. The NVMe device and parent bridge stayed in D0 over
> suspend, but that's exactly what the BIOS asked for, so it doesn't
> really answer your question.
> 
> On Linux with VMD=on and StorageD3Enable=1, the NVMe storage device
> and the VMD parent bridge are staying in D0 over suspend. I don't know
> why this is, I would have expected at least D3hot.

Yeah something is missing here. When StorageD3Enable is set, the nvme driver
prints the following message during boot:

	"platform quirk: setting simple suspend"

If you don't see this, then the driver never saw StorageD3Enable=1. Possible
reasons are:

	- The property doesn't exist
	- The property isn't set under the ACPI companion device
	- There is no associated ACPI companion device
	- The "nvme=noacpi" parameter was passed on the kernel cmdline
	- The nvme driver was quirked to not use D3 with
	   NVME_QUIRK_FORCE_NO_SIMPLE_SUSPEND.

How was the D-state status confirmed? You can use the following to see the D
state of PCI devices during suspend in the kernel log:

echo -n "file pci-driver.c +p" > /sys/kernel/debug/dynamic_debug/control

David

>   However, given
> that the NVMe device has no firmware_node under the VMD=on setup, I
> believe there is no way it would enter D3cold because there's no
> linkage to an ACPI device, so no available _PS3 or _PR0 or whatever is
> the precise definition of D3cold.
> 
> I also realise I may have made a bad assumption in my previous mail
> when looking at the Dell device: I was assuming that a parent PCI
> bridge cannot go into D3cold if its child devices only got as far as
> D3hot, but I now realise I'm not sure if that constraint actually
> exists.
> 
> Not sure if these questions are relevant for the consideration of this
> patch, but I'll try to find some time to answer them next week.
> 
> Daniel


  reply	other threads:[~2024-02-09 17:19 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-02-07  8:44 [PATCH v2 1/2] PCI: Disable D3cold on Asus B1400 PCI-NVMe bridge Daniel Drake
2024-02-07  8:44 ` [PATCH v2 2/2] Revert "ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default" Daniel Drake
2024-02-07  9:08   ` Jian-Hong Pan
2024-02-07 10:29     ` Rafael J. Wysocki
2024-02-07 11:42       ` Jian-Hong Pan
2024-02-07  9:06 ` [PATCH v2 1/2] PCI: Disable D3cold on Asus B1400 PCI-NVMe bridge Jian-Hong Pan
2024-02-07 11:43   ` Jian-Hong Pan
2024-02-07 20:05 ` Bjorn Helgaas
2024-02-08  8:37   ` Daniel Drake
2024-02-08  9:52     ` Daniel Drake
2024-02-08 16:57       ` David E. Box
2024-02-09  8:36         ` Daniel Drake
2024-02-09 17:19           ` David E. Box [this message]
2024-02-19 11:35           ` Daniel Drake
2024-02-19 12:45             ` Mario Limonciello
2024-02-20 23:25             ` David E. Box
2024-02-19  9:52       ` Daniel Drake

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=ecb40fbc2dc50cc2ebe7cc5393c2b0d6da58e4f3.camel@linux.intel.com \
    --to=david.e.box@linux.intel.com \
    --cc=bhelgaas@google.com \
    --cc=bp@alien8.de \
    --cc=dave.hansen@linux.intel.com \
    --cc=drake@endlessos.org \
    --cc=helgaas@kernel.org \
    --cc=hpa@zytor.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=linux@endlessos.org \
    --cc=mario.limonciello@amd.com \
    --cc=mingo@redhat.com \
    --cc=rafael@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=x86@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