On Sat, Mar 12, 2011 at 09:13:08PM +0000, Doug Barton wrote: > Author: dougb > Date: Sat Mar 12 21:13:08 2011 > New Revision: 219578 > URL: http://svn.freebsd.org/changeset/base/219578 > > Log: > Use the allexport option in load_rc_config() in order to avoid having > to repeatedly read the conf files. Depending on what is enabled the > files are being read anywhere from 15, 30, or more times currently. > By loading the values in the environment this is reduced to 1, with > perhaps a couple more, again depending on what is enabled. > > The speed-up for boot and shutdown is negligible when rc.conf is > on local disk, noticable when accessing files over NFS, and dramatic > when pulling rc.conf values from a database. > > This change also includes a minor optimization to the conditional > for $_rc_conf_loaded. > > Modified: > head/etc/rc.subr > > Modified: head/etc/rc.subr > ============================================================================== > --- head/etc/rc.subr Sat Mar 12 20:36:52 2011 (r219577) > +++ head/etc/rc.subr Sat Mar 12 21:13:08 2011 (r219578) > @@ -998,9 +998,8 @@ load_rc_config() > err 3 'USAGE: load_rc_config name' > fi > > - if ${_rc_conf_loaded:-false}; then > - : > - else > + if [ -z "$_rc_conf_loaded" ]; then > + set -o allexport > if [ -r /etc/defaults/rc.conf ]; then > debug "Sourcing /etc/defaults/rc.conf" > . /etc/defaults/rc.conf > @@ -1010,6 +1009,7 @@ load_rc_config() > . /etc/rc.conf > fi > _rc_conf_loaded=true > + set +o allexport > fi > if [ -f /etc/rc.conf.d/"$_name" ]; then > debug "Sourcing /etc/rc.conf.d/${_name}" As I read it, the change means that each process started by rc.d got approximately 32kB of non-shared garbage data in its environment ?
pgp2CMEjazo56.pgp
Description: PGP signature