On 09/29/2010 07:55 PM, Dave Chinner wrote: > On Wed, Sep 29, 2010 at 10:54:25AM +0200, Lukas Czerner wrote: >> Hi, >> >> I am working on something I have called "batched discard support" for Ext3 >> and Ext4 filesystems. Traditional discard support for filesystems like Ext4 >> has been implemented the way that whenever the file is unlinked the >> disk-space that the file was using is trimmed (discarded) by >> sb_issue_discard() to let the device know that this portion of disk is no >> longer in use by the filesystem and can be safely used for wear-leveling. >> >> However, this approach comes with very noticeable performance loss on most >> of SSD devices and LUN's I have the opportunity to test it on. The fact is, >> that bigger discard ranges are more efficient than smaller ones, so it make >> sense try to batch the ranges together wherever it is possible. >> >> I have introduced new filesystem independent ioctl (FITRIM) which can be used >> to send the "trim this portion of filesystem" command down to the filesystem >> which (if implemented) discards all free extents in that range. >> >> The implementation for Ext3 and Ext4 is complete and you can see it here: >> >> http://www.spinics.net/lists/linux-ext4/msg21050.html >> >> Why I am sending it here to linux-fsdevel is because I am introducing new fs >> independent ioctl and new member of super_operations (trim_fs) and we would >> like let you know about this approach (which any filesystem can take >> advantage from) and we would like your comment on this patch before we >> send it upstream. > > My first question is: how do you test a filesystem implements > ->trim_fs correctly? > > That is, if we are going to include a data-destroying ioctl, I > really want some filesystem independent tests written first so that > as filesystems implement ->trim_fs they can be tested for correct > implementation. > > Perhaps adding FITRIM support to xfs_io, and a generic test to > xfstests would be the way to go. e.g. write a set of patterned files > to the filesystem, unlink a number of the files, then run some trim > commands on the filesystem exercising corner cases and check that > none of the data in still-active files is damaged (e.g. via md5sum > comparison).... xfstests could use the scsi-debug module for testing too - at least once it has http://www.spinics.net/lists/linux-scsi/msg46008.html so that tests can be run even if you don't have the hardware. -Eric > Cheers, > > Dave. -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html