this post was submitted on 19 Oct 2023
41 points (97.7% liked)

Linux

47237 readers
3343 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

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.

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 8 points 11 months ago (2 children)

I am coming at this from a more general angle, so this may not be as applicable.

When a repeated series of inputs is written to a drive, a number of optimisations can be applied. If the user wants a large number of zeros written, the drive's firmware can use a short cut. Instead of writing those zeros, it can make a note that a number of blocks, at a location, are all zero.

This becomes apparent if one runs fio against the raw block devices versus a software later like LVM. Some operations against some layers will be unreasonably fast. There is a lot of nuance to this.

My read of the quirk is an incompatibility between what Linux expects and the firmware. Enable the quirk only if the dmesg errors are present. Do not expect that the drive has been zeroed. If you want your data secure at disposal of the drive, the then use encryption.

[–] [email protected] 2 points 11 months ago

Thanks a lot! This clarifies it for me, and if I understand correctly, it shouldn't be a concern for me since my laptop isn't used for data-intensive computing.

[–] [email protected] 1 points 11 months ago (1 children)

What if you try to wipe a NVME-drive for which this quirk is enabled by default in the kernel? Does that mean that even if you used something like the 'erase device' function in GNOME Disks on said drive, it would in fact not actually completely zero the drive? What if you use GNOME Disks to wipe a partition on said drive?

Or does this quirk refer to an entirely different operation?

[–] [email protected] 2 points 11 months ago

A bit outside of my knowledge, but I understand that too be a long standing issue. Wiping issues are a good reason to encrypt a NVMe drive.

This page suggest the nvmi-cli has a secure format command that will do it. http://blog.pythonaro.com/2018/05/how-to-securely-wipe-nvme-drive.html?m=1

Hopefully, someone more knowledgeable will also tag me in their response.