From owner-cvs-src-old@FreeBSD.ORG Tue Jan 19 12:59:27 2010 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9CDA31065670 for ; Tue, 19 Jan 2010 12:59:27 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 8A6C08FC12 for ; Tue, 19 Jan 2010 12:59:27 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o0JCxRV4058122 for ; Tue, 19 Jan 2010 12:59:27 GMT (envelope-from mav@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o0JCxRpl058121 for cvs-src-old@freebsd.org; Tue, 19 Jan 2010 12:59:27 GMT (envelope-from mav@repoman.freebsd.org) Message-Id: <201001191259.o0JCxRpl058121@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to mav@repoman.freebsd.org using -f From: Alexander Motin Date: Tue, 19 Jan 2010 12:58:29 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_8 Subject: cvs commit: src/sys/cam/ata ata_all.c ata_da.c src/sys/geom geom_dev.c src/sys/sys ata.h X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 19 Jan 2010 12:59:27 -0000 mav 2010-01-19 12:58:29 UTC FreeBSD src repository Modified files: (Branch: RELENG_8) sys/cam/ata ata_all.c ata_da.c sys/geom geom_dev.c sys/sys ata.h Log: SVN rev 202615 on 2010-01-19 12:58:29Z by mav 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. Revision Changes Path 1.1.2.11 +7 -1 src/sys/cam/ata/ata_all.c 1.2.2.12 +241 -111 src/sys/cam/ata/ata_da.c 1.102.2.4 +2 -2 src/sys/geom/geom_dev.c 1.41.2.6 +11 -3 src/sys/sys/ata.h