From owner-svn-src-head@FreeBSD.ORG Mon Mar 4 22:27:33 2013 Return-Path: Delivered-To: svn-src-head@freebsd.org Received: from mx1.freebsd.org (mx1.FreeBSD.org [8.8.178.115]) by hub.freebsd.org (Postfix) with ESMTP id 57DFB73C; Mon, 4 Mar 2013 22:27:33 +0000 (UTC) (envelope-from bright@mu.org) Received: from elvis.mu.org (elvis.mu.org [192.203.228.196]) by mx1.freebsd.org (Postfix) with ESMTP id 4480E1897; Mon, 4 Mar 2013 22:27:33 +0000 (UTC) Received: from Alfreds-MacBook-Pro-9.local (c-67-180-208-218.hsd1.ca.comcast.net [67.180.208.218]) by elvis.mu.org (Postfix) with ESMTPSA id 438A01A3D17; Mon, 4 Mar 2013 14:27:26 -0800 (PST) Message-ID: <51351FCA.7040303@mu.org> Date: Mon, 04 Mar 2013 14:27:22 -0800 From: Alfred Perlstein User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/20130216 Thunderbird/17.0.3 MIME-Version: 1.0 To: "Kenneth D. Merry" Subject: Re: svn commit: r247814 - in head: . sys/amd64/conf sys/cam/ctl sys/conf sys/i386/conf References: <201303042118.r24LIj5e008913@svn.freebsd.org> In-Reply-To: <201303042118.r24LIj5e008913@svn.freebsd.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org X-BeenThere: svn-src-head@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: SVN commit messages for the src tree for head/-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 04 Mar 2013 22:27:33 -0000 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 > #include > > +#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 >