svn commit: r272041 - stable/10/usr.sbin/mfiutil

Steven Hartland smh at FreeBSD.org
Tue Sep 23 21:38:07 UTC 2014


Author: smh
Date: Tue Sep 23 21:38:05 2014
New Revision: 272041
URL: http://svnweb.freebsd.org/changeset/base/272041

Log:
  MFC r271429, r271882:
  Add support for controlling mfi(4) controller properties
  
  Approved by:	re (glebius)
  Sponsored by:	Multiplay

Added:
  stable/10/usr.sbin/mfiutil/mfi_properties.c
     - copied, changed from r257820, head/usr.sbin/mfiutil/mfi_properties.c
Modified:
  stable/10/usr.sbin/mfiutil/Makefile
  stable/10/usr.sbin/mfiutil/mfiutil.8
  stable/10/usr.sbin/mfiutil/mfiutil.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/usr.sbin/mfiutil/Makefile
==============================================================================
--- stable/10/usr.sbin/mfiutil/Makefile	Tue Sep 23 20:35:48 2014	(r272040)
+++ stable/10/usr.sbin/mfiutil/Makefile	Tue Sep 23 21:38:05 2014	(r272041)
@@ -2,7 +2,8 @@
 PROG=	mfiutil
 
 SRCS=	mfiutil.c mfi_bbu.c mfi_cmd.c mfi_config.c mfi_drive.c mfi_evt.c \
-	mfi_flash.c mfi_patrol.c mfi_show.c mfi_volume.c mfi_foreign.c
+	mfi_flash.c mfi_patrol.c mfi_show.c mfi_volume.c mfi_foreign.c \
+	mfi_properties.c
 MAN8=	mfiutil.8
 
 CFLAGS.gcc+= -fno-builtin-strftime

Copied and modified: stable/10/usr.sbin/mfiutil/mfi_properties.c (from r257820, head/usr.sbin/mfiutil/mfi_properties.c)
==============================================================================
--- head/usr.sbin/mfiutil/mfi_properties.c	Thu Nov  7 21:47:59 2013	(r257820, copy source)
+++ stable/10/usr.sbin/mfiutil/mfi_properties.c	Tue Sep 23 21:38:05 2014	(r272041)
@@ -68,7 +68,7 @@ mfi_ctrl_set_properties(int fd, struct m
 static int
 mfi_ctrl_rebuild_rate(int ac, char **av)
 {
-        int error, fd;
+	int error, fd;
 	struct mfi_ctrl_props ctrl_props;
 
 	if (ac > 2) {
@@ -76,40 +76,40 @@ mfi_ctrl_rebuild_rate(int ac, char **av)
 		return(-1);
 	}
 		
-        fd = mfi_open(mfi_unit, O_RDWR);
-        if (fd < 0) {
-                error = errno;
-                warn("mfi_open");
-                return (error);
-        }
+	fd = mfi_open(mfi_unit, O_RDWR);
+	if (fd < 0) {
+		error = errno;
+		warn("mfi_open");
+		return (error);
+	}
 
 	error = mfi_ctrl_get_properties(fd, &ctrl_props);
-        if ( error < 0) {
-                error = errno;
-                warn("Failed to get controller properties");
-                close(fd);
-                return (error);
-        }
+	if ( error < 0) {
+		error = errno;
+		warn("Failed to get controller properties");
+		close(fd);
+		return (error);
+	}
 	/*
 	 * User requested a change to the rebuild rate
 	 */
 	if (ac > 1) {
 		ctrl_props.rebuild_rate = atoi(av[ac - 1]);
 		error = mfi_ctrl_set_properties(fd, &ctrl_props);
-        	if ( error < 0) {
-                	error = errno;
-                	warn("Failed to set controller properties");
-                	close(fd);
-                	return (error);
-        	}
+		if ( error < 0) {
+			error = errno;
+			warn("Failed to set controller properties");
+			close(fd);
+			return (error);
+		}
 
 		error = mfi_ctrl_get_properties(fd, &ctrl_props);
-        	if ( error < 0) {
-                	error = errno;
-                	warn("Failed to get controller properties");
-                	close(fd);
-                	return (error);
-        	}
+		if ( error < 0) {
+			error = errno;
+			warn("Failed to get controller properties");
+			close(fd);
+			return (error);
+		}
 	}
 	printf ("controller rebuild rate: %%%u \n",
 		ctrl_props.rebuild_rate);
@@ -120,7 +120,7 @@ MFI_COMMAND(ctrlprop, rebuild, mfi_ctrl_
 static int
 mfi_ctrl_alarm_enable(int ac, char **av)
 {
-        int error, fd;
+	int error, fd;
 	struct mfi_ctrl_props ctrl_props;
 
 	if (ac > 2) {
@@ -128,40 +128,40 @@ mfi_ctrl_alarm_enable(int ac, char **av)
 		return(-1);
 	}
 		
-        fd = mfi_open(mfi_unit, O_RDWR);
-        if (fd < 0) {
-                error = errno;
-                warn("mfi_open");
-                return (error);
-        }
+	fd = mfi_open(mfi_unit, O_RDWR);
+	if (fd < 0) {
+		error = errno;
+		warn("mfi_open");
+		return (error);
+	}
 
 	error = mfi_ctrl_get_properties(fd, &ctrl_props);
-        if ( error < 0) {
-                error = errno;
-                warn("Failed to get controller properties");
-                close(fd);
-                return (error);
-        }
+	if ( error < 0) {
+		error = errno;
+		warn("Failed to get controller properties");
+		close(fd);
+		return (error);
+	}
 	printf ("controller alarm was : %s\n",
 		(ctrl_props.alarm_enable ? "enabled" : "disabled"));
 
 	if (ac > 1) {
 		ctrl_props.alarm_enable = atoi(av[ac - 1]);
 		error = mfi_ctrl_set_properties(fd, &ctrl_props);
-        	if ( error < 0) {
-                	error = errno;
-                	warn("Failed to set controller properties");
-                	close(fd);
-                	return (error);
-        	}
+		if ( error < 0) {
+			error = errno;
+			warn("Failed to set controller properties");
+			close(fd);
+			return (error);
+		}
 
 		error = mfi_ctrl_get_properties(fd, &ctrl_props);
-        	if ( error < 0) {
-                	error = errno;
-                	warn("Failed to get controller properties");
-                	close(fd);
-                	return (error);
-        	}
+		if ( error < 0) {
+			error = errno;
+			warn("Failed to get controller properties");
+			close(fd);
+			return (error);
+		}
 	}
 	printf ("controller alarm was : %s\n",
 		(ctrl_props.alarm_enable ? "enabled" : "disabled"));

Modified: stable/10/usr.sbin/mfiutil/mfiutil.8
==============================================================================
--- stable/10/usr.sbin/mfiutil/mfiutil.8	Tue Sep 23 20:35:48 2014	(r272040)
+++ stable/10/usr.sbin/mfiutil/mfiutil.8	Tue Sep 23 21:38:05 2014	(r272041)
@@ -168,6 +168,12 @@
 .Nm
 .Op Fl u Ar unit
 .Cm bbu Ar setting Ar value
+.Nm
+.Op Fl u Ar unit
+.Cm ctrlprop Ar rebuild Op Ar rate
+.Nm
+.Op Fl u Ar unit
+.Cm ctrlprop Ar alarm Op Ar 0/1
 .Sh DESCRIPTION
 The
 .Nm
@@ -659,6 +665,12 @@ inclusive.
 Modes 1, 2 and 3 enable a transparent learn cycle, whereas modes 4 and 5 do not.
 The BBU's data retention time is greater when transparent learning is not used.
 .El
+.It Cm ctrlprop Ar rebuild Op Ar rate
+With no arguments display the rate of rebuild (percentage)a for volumes.
+With an integer argument (0-100), set that value as the new rebuild rate for volumes.
+.It Cm ctrlprop Ar alarm Op Ar 0/1
+With no arguments display the current alarm enable/disable status.
+With a 0, disable alarms.  With a 1, enable alarms.
 .El
 .Sh EXAMPLES
 Configure the cache for volume mfid0 to cache only writes:
@@ -699,6 +711,10 @@ patrol read starting in 5 minutes:
 Display the second detected foreign configuration:
 .Pp
 .Dl Nm Cm show foreign 1
+.Pp
+Set the current rebuild rate for volumes to 40%:
+.Dl Nm Cm ctrlprop rebuild 40
+.Pp
 .Sh SEE ALSO
 .Xr mfi 4
 .Sh HISTORY

Modified: stable/10/usr.sbin/mfiutil/mfiutil.c
==============================================================================
--- stable/10/usr.sbin/mfiutil/mfiutil.c	Tue Sep 23 20:35:48 2014	(r272040)
+++ stable/10/usr.sbin/mfiutil/mfiutil.c	Tue Sep 23 21:38:05 2014	(r272041)
@@ -93,6 +93,8 @@ usage(void)
 	fprintf(stderr, "    flash <firmware>\n");
 	fprintf(stderr, "    start learn               - start a BBU relearn\n");
 	fprintf(stderr, "    bbu <setting> <value>     - set BBU properties\n");
+	fprintf(stderr, "    ctrlprop rebuild [rate]   - get/set the volume rebuild rate\n");
+	fprintf(stderr, "    ctrlprop alarm [0/1]      - enable/disable controller alarms\n");
 #ifdef DEBUG
 	fprintf(stderr, "    debug                     - debug 'show config'\n");
 	fprintf(stderr, "    dump                      - display 'saved' config\n");


More information about the svn-src-all mailing list