Bill Davidsen wrote:
jim owens wrote:
Bill Davidsen wrote:
I assume that it really is artificial, rather than the device really
being ready for another operation (other than another TRIM). I lack
the hardware, but the test would be the time to complete a read, trim
and read, and two trim and read operations. Just my thought that the
TRIM in progress may only block the next TRIM, rather than other
operations.
I don't know his test sequence but READ is not the likely command
before and after TRIM unless we are talking about TRIM being issued
only in delayed host garbage collection. Filesystems send WRITES
during delete.
My idea is to test using a command which will definitely not need to
prepare the media before completion, thus read. If TRIM doesn't block
reads, then NCQ may allow reads to take place. Because of buffering slow
reads hurt more than slow writes in terms of user perception.
The filesystem must send at least one unbuffered synchronous write
before it can send a trim for those blocks so the drive will not
release the blocks until we are certain they will not be needed again.
AKA the metadata consistency problem for crash recovery.
So non-delayed trim must at least be preceded by a write, but you
are correct that reads could be after the trim if the filesystem
does not have a multi-stage delete that requires a second synchronous
write, or if the trim can be held until all filesystem writes occur.
How hard it will be to "send the trim last" will be different for
each filesystem and some developers are already working on that.
jim
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html