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

Chris Worley
2009-08-14T23:21:34Z

On Fri, Aug 14, 2009 at 4:10 PM, Mark Lord<liml@rtr.ca> wrote:
> Bryan Donlan wrote:
> ..
>>
>> Perhaps an interface (ioctl, etc) can be added to ask a filesystem to
>> discard all unused blocks in a certain range? (That is, have the
>> filesystem validate the request under any necessary locks before
>> passing it to the block IO layer)
>
> ..
>
> While possibly TRIM-specific, this approach has the lowest overhead
> and probably the greatest gain-for-pain ratio.
>
> But it may not be as nice for enterprise (?).
>
> On the Indilinx-based SSDs (eg. OCZ Vertex), TRIM seems to trigger an
> internal garbage-collection/erase cycle.  As such, the drive really prefers
> a few LARGE trim lists, rather than many smaller ones.
>
> Here's some information that a vendor has observed from the Win7 use of
> TRIM:
>
>> TRIM command is sent:
>> -       About 2/3 of partition is filled up, when file is deleted.
>>        (I am not talking about send file to trash bin.)
>> -       In the above case, when trash bin gets emptied.
>> -       In the above case, when partition is deleted.
>>
>> TRIM command is not sent:-
>> -       When file is moved to trash bin
>> -       When partition is formatted. (Both quick and full format)
>> -       When empty partition is deleted
>> -       When file is deleted while there is big remaining free space
>
> ..
>
> His words, not mine.  But the idea seems to be to batch them in large
> chunks.

Sooner is better than waiting to coalesce. The longer an LBA is
inactive, the better for any management scheme. If you wait until
it's reused, you might as well forgo the advantages of TRIM/UNMAP. If
a the controller wants to coalesce, let it coalesce.

Chris
>
> My wiper.sh "trim script" is packaged with the latest hdparm (currently
> 9.24)
> on sourceforge, for those who want to try this stuff for real.  No special
> kernel support is required to use it.
>
> Cheers
>
> Mark
> --
> To unsubscribe from this list: send the line "unsubscribe linux-raid" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>