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
next prev parent 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