svn commit: r247814 - in head: . sys/amd64/conf sys/cam/ctl sys/conf sys/i386/conf

Kenneth D. Merry ken at FreeBSD.org
Mon Mar 4 21:18:47 UTC 2013


Author: ken
Date: Mon Mar  4 21:18:45 2013
New Revision: 247814
URL: http://svnweb.freebsd.org/changeset/base/247814

Log:
  Re-enable CTL in GENERIC on i386 and amd64, but turn on the CTL disable
  tunable by default.
  
  This will allow GENERIC configurations to boot on small memory boxes, but
  not require end users who want to use CTL to recompile their kernel.  They
  can simply set kern.cam.ctl.disable=0 in loader.conf.
  
  The eventual solution to the memory usage problem is to change the way
  CTL allocates memory to be more configurable, but this should fix things
  for small memory situations in the mean time.
  
  UPDATING:		Explain the change in the CTL configuration, and
  			how users can enable CTL if they would like to use
  			it.
  
  sys/conf/options:	Add a new option, CTL_DISABLE, that prevents CTL
  			from initializing.
  
  ctl.c:			If CTL_DISABLE is turned on, don't initialize.
  
  i386/conf/GENERIC,
  amd64/conf/GENERIC:	Re-enable device ctl, and add the CTL_DISABLE
  			option.

Modified:
  head/UPDATING
  head/sys/amd64/conf/GENERIC
  head/sys/cam/ctl/ctl.c
  head/sys/conf/options
  head/sys/i386/conf/GENERIC

Modified: head/UPDATING
==============================================================================
--- head/UPDATING	Mon Mar  4 21:09:22 2013	(r247813)
+++ head/UPDATING	Mon Mar  4 21:18:45 2013	(r247814)
@@ -26,6 +26,13 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 10
 	disable the most expensive debugging functionality run
 	"ln -s 'abort:false,junk:false' /etc/malloc.conf".)
 
+20130304:
+	The ctl device has been re-enabled in GENERIC for i386 and amd64,
+	but does not initialize by default (because of the new CTL_DISABLE
+	option) to save memory.  To re-enable it, remove the CTL_DISABLE
+	option from the kernel config file or set kern.cam.ctl.disable=0
+	in /boot/loader.conf.
+
 20130301:
 	The ctl device has been disabled in GENERIC for i386 and amd64.
 	This was done due to the extra memory being allocated at system

Modified: head/sys/amd64/conf/GENERIC
==============================================================================
--- head/sys/amd64/conf/GENERIC	Mon Mar  4 21:09:22 2013	(r247813)
+++ head/sys/amd64/conf/GENERIC	Mon Mar  4 21:18:45 2013	(r247814)
@@ -138,7 +138,10 @@ device		sa		# Sequential Access (tape et
 device		cd		# CD
 device		pass		# Passthrough device (direct ATA/SCSI access)
 device		ses		# Enclosure Services (SES and SAF-TE)
-#device		ctl		# CAM Target Layer
+device		ctl		# CAM Target Layer
+options		CTL_DISABLE	# Disable CTL by default to save memory.
+				# Re-enable with kern.cam.ctl.disable=0 in
+				# /boot/loader.conf
 
 # RAID controllers interfaced to the SCSI subsystem
 device		amr		# AMI MegaRAID

Modified: head/sys/cam/ctl/ctl.c
==============================================================================
--- head/sys/cam/ctl/ctl.c	Mon Mar  4 21:09:22 2013	(r247813)
+++ head/sys/cam/ctl/ctl.c	Mon Mar  4 21:18:45 2013	(r247814)
@@ -78,6 +78,8 @@ __FBSDID("$FreeBSD$");
 #include <cam/ctl/ctl_scsi_all.h>
 #include <cam/ctl/ctl_error.h>
 
+#include "opt_ctl.h"
+
 struct ctl_softc *control_softc = NULL;
 
 /*
@@ -317,7 +319,11 @@ static int persis_offset;
 static uint8_t ctl_pause_rtr;
 static int     ctl_is_single;
 static int     index_to_aps_page;
+#ifdef CTL_DISABLE
+int	   ctl_disable = 1;
+#else
 int	   ctl_disable = 0;
+#endif
 
 SYSCTL_NODE(_kern_cam, OID_AUTO, ctl, CTLFLAG_RD, 0, "CAM Target Layer");
 SYSCTL_INT(_kern_cam_ctl, OID_AUTO, disable, CTLFLAG_RDTUN, &ctl_disable, 0,

Modified: head/sys/conf/options
==============================================================================
--- head/sys/conf/options	Mon Mar  4 21:09:22 2013	(r247813)
+++ head/sys/conf/options	Mon Mar  4 21:18:45 2013	(r247814)
@@ -329,6 +329,9 @@ SCSI_PT_DEFAULT_TIMEOUT	opt_pt.h
 # Options used only in cam/scsi/scsi_ses.c
 SES_ENABLE_PASSTHROUGH	opt_ses.h
 
+# Options used only in cam/ctl
+CTL_DISABLE		opt_ctl.h
+
 # Options used in dev/sym/ (Symbios SCSI driver).
 SYM_SETUP_LP_PROBE_MAP	opt_sym.h	#-Low Priority Probe Map (bits)
 					# Allows the ncr to take precedence

Modified: head/sys/i386/conf/GENERIC
==============================================================================
--- head/sys/i386/conf/GENERIC	Mon Mar  4 21:09:22 2013	(r247813)
+++ head/sys/i386/conf/GENERIC	Mon Mar  4 21:18:45 2013	(r247814)
@@ -146,7 +146,10 @@ device		sa		# Sequential Access (tape et
 device		cd		# CD
 device		pass		# Passthrough device (direct ATA/SCSI access)
 device		ses		# Enclosure Services (SES and SAF-TE)
-#device		ctl		# CAM Target Layer
+device		ctl		# CAM Target Layer
+options		CTL_DISABLE	# Disable CTL by default to save memory.
+				# Re-enable with kern.cam.ctl.disable=0 in
+				# /boot/loader.conf
 
 # RAID controllers interfaced to the SCSI subsystem
 device		amr		# AMI MegaRAID


More information about the svn-src-all mailing list