
On Wed, 23 Jul 2014 12:58:08 PM Toby Corkindale wrote:
I think most tools are smart enough to do things right for SSDs (mainly, block-aligning) now, but TRIM still tends to need you to fiddle with stuff to enable. I think this is because on older SSDs, TRIM (aka discard) was a performance problem, so you really only wanted to run it once at 4am rather than every time you touched a block on your device.
Pre SATA 3.1 the TRIM command was non-queued, which means the kernel had to wait for all I/O to complete before it could issue the TRIM command and couldn't send any other commands until it completed. Bad protocol design. http://lwn.net/Articles/347511/ Which didn't help the fact that many SSDs took/take a long time to TRIM. This was fixed in SATA-3.1 which introduced an NCQ/DSM (queued) TRIM command.
But newer SSDs fixed that issue, but because only some support it, the choice is left up to the user. (With the default seeming to be "don't do it at all" unfortunately)
There has been an attempt to detect and enable it for certain devices but for instance Crucial and Micron have problems with crappy SSD firmware (FTL) leading to data corruption. :-( It was meant to be fixed in a firmware update (MU05), but sadly trusting the vendor and whitelisting it resulted in more people getting data corruption, including trashed partition tables. Bugzilla entry of their pain: https://bugzilla.kernel.org/show_bug.cgi?id=71371 I don't know if they've gotten around to fixing it yet. :-( cheers, Chris -- Chris Samuel : http://www.csamuel.org/ : Melbourne, VIC