I'm shopping for a new NVMe SSD drive for my laptop and with the second deciding factor being Linux compatibility, I'd looked up the names of specific drives in the source code of Linux and discovered that their controllers have quirks that have to be worked around.
Now, I figured out more or less how quirks affecting one of the controllers impact its functionality under Linux, but there's another controller that I have a trouble understanding how disabling the aforementioned command limits the functionality of, if at all; therefore I'd like to ask you all, under what circumstances is the command used by a host and can disabling it lower the performance or power efficiency of an impacted controller/drive?
To be clear, the quirk workaround I'm talking a about is NVME_QUIRK_DISABLE_WRITE_ZEROES
.
It depends how those tools are working at a lower level. Usually it is better to use a security erase feature in the drive itself, or the NVMe format command. Every drive has some sort of implementation.
SSDs have a lot of tricks to increase performance and longevity, things like wear leveling or not actually writing all those zeroes to the NAND, so writing all zeroes may leave a lot of data untouched on the actual drive while the firmware keeps a tally.