svn commit: r249921 - in head: . sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys

Steven Hartland smh at FreeBSD.org
Fri Apr 26 11:24:21 UTC 2013


Author: smh
Date: Fri Apr 26 11:24:20 2013
New Revision: 249921
URL: http://svnweb.freebsd.org/changeset/base/249921

Log:
  Changed ZFS TRIM sysctl from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled
  Enabled ZFS TRIM by default
  
  Reviewed by:	pjd (mentor)
  Approved by:	pjd (mentor)
  MFC after:	2 weeks

Modified:
  head/UPDATING
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
  head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Fri Apr 26 07:00:49 2013	(r249920)
+++ head/UPDATING	Fri Apr 26 11:24:20 2013	(r249921)
@@ -31,6 +31,11 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10
 	disable the most expensive debugging functionality run
 	"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
 
+20130426:
+	The sysctl which controls TRIM support under ZFS has been renamed
+	from vfs.zfs.trim_disable -> vfs.zfs.trim.enabled and has been
+	enabled by default.
+
 20130425:
 	The mergemaster command now uses the default MAKEOBJDIRPREFIX
 	rather than creating it's own in the temporary directory in

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h	Fri Apr 26 07:00:49 2013	(r249920)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/vdev.h	Fri Apr 26 11:24:20 2013	(r249921)
@@ -46,7 +46,7 @@ typedef enum vdev_dtl_type {
 } vdev_dtl_type_t;
 
 extern boolean_t zfs_nocacheflush;
-extern boolean_t zfs_notrim;
+extern boolean_t zfs_trim_enabled;
 
 extern int vdev_open(vdev_t *);
 extern void vdev_open_children(vdev_t *);

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c	Fri Apr 26 07:00:49 2013	(r249920)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/trim_map.c	Fri Apr 26 11:24:20 2013	(r249921)
@@ -72,7 +72,7 @@ typedef struct trim_seg {
 	hrtime_t	ts_time;	/* Segment creation time. */
 } trim_seg_t;
 
-extern boolean_t zfs_notrim;
+extern boolean_t zfs_trim_enabled;
 
 static u_int trim_txg_delay = 32;
 static u_int trim_timeout = 30;
@@ -157,7 +157,7 @@ trim_map_create(vdev_t *vd)
 
 	ASSERT(vd->vdev_ops->vdev_op_leaf);
 
-	if (zfs_notrim)
+	if (!zfs_trim_enabled)
 		return;
 
 	tm = kmem_zalloc(sizeof (*tm), KM_SLEEP);
@@ -183,7 +183,7 @@ trim_map_destroy(vdev_t *vd)
 
 	ASSERT(vd->vdev_ops->vdev_op_leaf);
 
-	if (zfs_notrim)
+	if (!zfs_trim_enabled)
 		return;
 
 	tm = vd->vdev_trimmap;
@@ -340,7 +340,7 @@ trim_map_free(vdev_t *vd, uint64_t offse
 {
 	trim_map_t *tm = vd->vdev_trimmap;
 
-	if (zfs_notrim || vd->vdev_notrim || tm == NULL)
+	if (!zfs_trim_enabled || vd->vdev_notrim || tm == NULL)
 		return;
 
 	mutex_enter(&tm->tm_lock);
@@ -357,7 +357,7 @@ trim_map_write_start(zio_t *zio)
 	boolean_t left_over, right_over;
 	uint64_t start, end;
 
-	if (zfs_notrim || vd->vdev_notrim || tm == NULL)
+	if (!zfs_trim_enabled || vd->vdev_notrim || tm == NULL)
 		return (B_TRUE);
 
 	start = zio->io_offset;
@@ -404,7 +404,7 @@ trim_map_write_done(zio_t *zio)
 	 * Don't check for vdev_notrim, since the write could have
 	 * started before vdev_notrim was set.
 	 */
-	if (zfs_notrim || tm == NULL)
+	if (!zfs_trim_enabled || tm == NULL)
 		return;
 
 	mutex_enter(&tm->tm_lock);
@@ -589,7 +589,7 @@ void
 trim_thread_create(spa_t *spa)
 {
 
-	if (zfs_notrim)
+	if (!zfs_trim_enabled)
 		return;
 
 	mutex_init(&spa->spa_trim_lock, NULL, MUTEX_DEFAULT, NULL);
@@ -604,7 +604,7 @@ void
 trim_thread_destroy(spa_t *spa)
 {
 
-	if (zfs_notrim)
+	if (!zfs_trim_enabled)
 		return;
 	if (spa->spa_trim_thread == NULL)
 		return;
@@ -627,7 +627,7 @@ void
 trim_thread_wakeup(spa_t *spa)
 {
 
-	if (zfs_notrim)
+	if (!zfs_trim_enabled)
 		return;
 	if (spa->spa_trim_thread == NULL)
 		return;

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c	Fri Apr 26 07:00:49 2013	(r249920)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_label.c	Fri Apr 26 11:24:20 2013	(r249921)
@@ -729,7 +729,7 @@ vdev_label_init(vdev_t *vd, uint64_t crt
 	 * Don't TRIM if removing so that we don't interfere with zpool
 	 * disaster recovery.
 	 */
-	if (!zfs_notrim && vdev_trim_on_init && (reason == VDEV_LABEL_CREATE ||
+	if (zfs_trim_enabled && vdev_trim_on_init && (reason == VDEV_LABEL_CREATE ||
 	    reason == VDEV_LABEL_SPARE || reason == VDEV_LABEL_L2CACHE))
 		zio_wait(zio_trim(NULL, spa, vd, 0, vd->vdev_psize));
 

Modified: head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c
==============================================================================
--- head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c	Fri Apr 26 07:00:49 2013	(r249920)
+++ head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zil.c	Fri Apr 26 11:24:20 2013	(r249921)
@@ -83,10 +83,11 @@ boolean_t zfs_nocacheflush = B_FALSE;
 TUNABLE_INT("vfs.zfs.cache_flush_disable", &zfs_nocacheflush);
 SYSCTL_INT(_vfs_zfs, OID_AUTO, cache_flush_disable, CTLFLAG_RDTUN,
     &zfs_nocacheflush, 0, "Disable cache flush");
-boolean_t zfs_notrim = B_TRUE;
-TUNABLE_INT("vfs.zfs.trim_disable", &zfs_notrim);
-SYSCTL_INT(_vfs_zfs, OID_AUTO, trim_disable, CTLFLAG_RDTUN, &zfs_notrim, 0,
-    "Disable trim");
+boolean_t zfs_trim_enabled = B_TRUE;
+SYSCTL_DECL(_vfs_zfs_trim);
+TUNABLE_INT("vfs.zfs.trim.enabled", &zfs_trim_enabled);
+SYSCTL_INT(_vfs_zfs_trim, OID_AUTO, enabled, CTLFLAG_RDTUN, &zfs_trim_enabled, 0,
+    "Enable ZFS TRIM");
 
 static kmem_cache_t *zil_lwb_cache;
 


More information about the svn-src-head mailing list