On Thu, Jan 06, 2011 at 09:50:39AM +1100, Dave Chinner wrote:
> If we want optimised, only-trim-what-we-free behaviour, we need to
> hook into the transaction subsystem and issue TRIM commands at the
> time extents are actually freed. That is much more complex to
> implement but much easier to optimise because it doesn't require
> persistent state on disk. However, most devices are simply not ready
> to handle the flood of TRIM commands this generates, with
> performance degrading by ~10-20% for the best of devices and
> _10-100x_ for the worst...
I tested a few devices that have zero to 1% degradation, but those
were arrays, which allow for queued WRITE SAME/UNMAP commands instead
of the unqueued TRIM in ATA. But I'm gettig close to finishing the
online discard and will start another benchmark session soon. With
PCI-E flash devices that aren't limited by the ATA protocol, and the
proposed queueable TRIM command this looks like what we need for the
future.
|