Date: Mon, 04 Mar 2013 14:27:22 -0800 From: Alfred Perlstein <bright@mu.org> To: "Kenneth D. Merry" <ken@FreeBSD.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r247814 - in head: . sys/amd64/conf sys/cam/ctl sys/conf sys/i386/conf Message-ID: <51351FCA.7040303@mu.org> In-Reply-To: <201303042118.r24LIj5e008913@svn.freebsd.org> References: <201303042118.r24LIj5e008913@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Ken, By the time ctl_init is called, it looks like enough of the vm is there such that you could probe for physmem. (I may be wrong and apologize if so) Look at kern_mib.c: > sysctl_hw_physmem(SYSCTL_HANDLER_ARGS) > { > u_long val; > > val = ctob(physmem); > return (sysctl_handle_long(oidp, &val, 0, req)); > } > > SYSCTL_PROC(_hw, HW_PHYSMEM, physmem, CTLTYPE_ULONG | CTLFLAG_RD, > 0, 0, sysctl_hw_physmem, "LU", ""); Then the logic could be: IF (set(tunable_ctl_onoff)) ctl_onoff = tunable_ctl_onoff; ELSE ctl_onoff = physmem > ctl_threshold; This would get you much more people testing the code and the best out of the box experience for people downloading. Hope this helps. -Alfred On 3/4/13 1:18 PM, Kenneth D. Merry wrote: > 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 >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?51351FCA.7040303>