0

When I decided to install linux, I was plagued with battery life problems, and most annoyingly, every reboot my system would fail to detect my SSD.

After much research I have found the source to one of my problems.

In kernel version 4.11 they added a NVMe controller that saves power. After the kernel version 4.11.0rc7 they added in this patch:

static const struct nvme_core_quirk_entry core_quirks[] = {
    /*
     * Seen on a Samsung "SM951 NVMe SAMSUNG 256GB": using APST causes
     * the controller to go out to lunch.  It dies when the watchdog
     * timer reads CSTS and gets 0xffffffff.
     */
    {
        .vid = 0x144d,
        .fr = "BXW75D0Q",
        .quirks = NVME_QUIRK_NO_APST,
    },

Apparently this causes problems with my SSD when rebooting, making it so it is not detected. I can only use kernel version 4.11.0rc7 any below to avoid the rebooting problem AND have the power changing patch in my kernel.

Now, my only question is: Is it possible to disable this in newer kernels? I wouldn't really know how to go about this at all. I'd hope it's as simple as adding a boot parameter.

Thomas
  • 6,223
cvr
  • 21
  • 5
  • You should report bug upstream or to launchpad, but not here. – N0rbert Jan 28 '18 at 16:04
  • This question has information that might be helpful: https://askubuntu.com/questions/998471/razer-blade-stealth-disk-corruption-fsck-needed-probably-samsung-ssd-bug-afte/1000454?noredirect=1#comment1617571_1000454 – WinEunuuchs2Unix Jan 28 '18 at 16:42
  • I was hoping I would be able to disable this patch myself, but I suppose no one knows how? Thank you for the link – cvr Jan 28 '18 at 18:08

1 Answers1

0

You may have already fixed this by now, but I thought I'd post here as well as the original thread.

TLDR: Try booting with kernel parameter nvme_core.force_apst=1

tuxxi
  • 131
  • 4
  • 1
    Hi! Thanks for the response. I found a perfect tuning to allow my SSD to take advantage of the internal optimization while not having it stall on reboot.

    in the kernel parameters just place this parameter:

    nvme_core.default_ps_max_latency_us=4950

    – cvr Jun 17 '18 at 14:38
  • Hello. I have similar problems with a Crucial P1... I read about the default_ps_max_latency_us set to 0 and 250... I still have to try it. With 250 I still have issues. I was wondering, where did you get that 4950 value? – dentex Feb 22 '19 at 10:16