Re: [BUG][5.18rc5] nvme nvme0: controller is down; will reset: CSTS=0xffffffff, PCI_STATUS=0x10

From: Keith Busch
Date: Thu May 05 2022 - 21:51:28 EST


On Thu, May 05, 2022 at 01:02:12PM +0500, Mikhail Gavrilov wrote:
> On Thu, May 5, 2022 at 10:19 AM Keith Busch <kbusch@xxxxxxxxxx> wrote:
> > I think you did misinterpret the results. The max latency just says which power
> > state is the deepest it will request APST, and your controller's reported
> > values will allow the deepest low power state your controller supports, which
> > is known to cause problems with some platform/controller combinations.
> >
> > The troubleshooting steps for your observation is to:
> >
> > 1. Turn off APST (nvme_core.default_ps_max_latency_us=0)
> > 2. Turn off APSM (pcie_aspm=off)
> > 3. Turn off both
> >
> > Typically one of those resolves the issue.
>
> Thanks.
> To make it easier for everyone to diagnose such problems, it would be
> great if every switching between power save modes would be written to
> the kernel log (when console_loglevel is KERN_DEBUG)
> If APST is culprit, we would have seen the change in the power state
> in the kernel logs before the message "nvme nvme0: controller is
> down;".

The "A" in "APST" stands for "Autonomous", as in the kernel doesn't participate
in the power state transitions, so we don't have an opportunity to log such
things. We could perhaps add a kernel message like the classic "Dazed and
confused" power mode strangeness since this spec compliant feature problem
seems to be bizarrely common.