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.