Re: [PATCH 1/2] fs: Do not dispatch FITRIM through separate super_operation

From: Mark Lord
Date: Thu Nov 18 2010 - 22:44:42 EST


On 10-11-18 08:33 PM, Ted Ts'o wrote:

Before we go gung ho on this, there's no evidence that N discontiguous
ranges in one command are any better than the ranges sent N times ...
the same amount of erase overhead gets sent on SSDs.

No, we do have evidence: execution time of the TRIM commands on the SSD.

The one-range-at-a-time is incredibly slow compared to multiple
ranges at a time. That slowness comes from somewhere, with about
99.9% certainty that it is due to the drive performing slow flash
erase cycles.

Mark, I think you are over-generalizing here. You have observed with
some number of flash drives --- maybe only one, but I don't know that
for sure --- that TRIM is slow. Even if we grant that you are correct
in your conclusion that it is because the drive is doing slow flash
erase cycles (and I don't completely accept that; I haven't seen your
your measurements since we know that any kind of command that requires
a queue drain/flush before it can execute is going to be slow, and I
don't know what kind of _slow_ you are observing).

I do this stuff on modest hardware: ata_piix.
There is NO QUEUE TO FLUSH.

So one might expect TRIM to operate at the same speed as ordinary WRITEs.
But it doesn't. When I measured this in detail (and things have not changed
much since then), we were talking 10s of milliseconds to 100s of milliseconds
per TRIM command.

The only possible explanation for that would be waiting on flash erase commands.

Cheers
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/