]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC r201139:
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 19 Jan 2010 12:58:29 +0000 (12:58 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Tue, 19 Jan 2010 12:58:29 +0000 (12:58 +0000)
commit31dd4fdd53cde888a8fa84aea5ea9cc833922946
treed2ae658b6f0cba9a3bd7b4b5aa9795b3c5ca1cd3
parent4839fa97c3dd9f4bafd9921130c0b4119eb32439
MFC r201139:
Add BIO_DELETE support to ada(4):
- For SSDs use TRIM feature of DATA SET MANAGEMENT command, as defined by
ACS-2 specification working draft.
- For CompactFlash use CFA ERASE command, same as ad(4) does.

With this patch, `newfs -E /dev/ada1` was able to restore write speed of
my heavily weared OCZ Vertex SSD (firmware 1.4) up to the initial level
for the most part of it's capacity.

I have no idea whether it is normal, but for some reason it takes 200ms
to handle any TRIM command on this drive, that was making delete extremely
slow. But TRIM command is able to accept long list of LBAs and the length of
that list seems doesn't affect it's execution time. Implemented request
clusting algorithm allowed me to rise delete rate up to reasonable numbers,
when many parallel DELETE requests running.

git-svn-id: svn://svn.freebsd.org/base/stable/8@202615 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/cam/ata/ata_all.c
sys/cam/ata/ata_da.c
sys/geom/geom_dev.c
sys/sys/ata.h