Thread (5 messages) 5 messages, 3 authors, 2009-08-17

Re: Discard support (was Re: [PATCH] swap: send callback when swap slot is freed)

From: jim owens <hidden>
Date: 2009-08-17 17:37:36
Also in: linux-mm, linux-raid, linux-scsi, lkml

Bill Davidsen wrote:
jim owens wrote:
quoted
Bill Davidsen wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help