Support discarding of unused sectors

From xfs.org
Revision as of 11:55, 15 April 2009 by Pniemayer (talk | contribs) (initial proposal)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Rationale

For magnetic disks, DRAM and many other physical media used as block devices, it does not matter for the device to know which sectors are actually unused by the filesystem and therefore contain irrelevant content.

This is quite different for Solid State Disks (SSDs) built from Flash Memory: To avoid performance degradation from the dynamic wear-levelling algorithms, there has to be a clever management of "unused" blocks in the SSD controller.

To let the SSD controller know which sectors contain irrelevant data, the ATA TRIM command has been standardized, and now the first SSDs are available that implement that command (e.g. the SSDs using the Indilinx Barefoot controller, from firmware revision 1370 onwards).

What needs to be done

To support SSDs and other devices that benefit from knowing unused sectors, the blkdev_issue_discard() function has recently been integrated into the Linux kernel (2.6.30rcX).

The filesystem needs to call that function when it knows sectors become unused.

Related Standards

Data Set Management Commands Proposal for ATA8-ACS2

Deterministic TRIM Proposal for ATA8-ACS2