Date: Sun, 13 Aug 2006 20:43:25 +0400 (MSD) From: Dmitry Morozovsky <marck@rinet.ru> To: current@FreeBSD.org Subject: rc.subr: mount_md autosize and auto-swapsence prooposal Message-ID: <20060813204106.P22009@woozle.rinet.ru>
index | next in thread | raw e-mail
[-- Attachment #1 --]
Dear colleagues,
several monthes ago there was some discussions about mdmfs file system flags.
What do you think about the patch attached?
Sincerely,
D.Marck [DM5020, MCK-RIPE, DM3-RIPN]
------------------------------------------------------------------------
*** Dmitry Morozovsky --- D.Marck --- Wild Woozle --- marck@rinet.ru ***
------------------------------------------------------------------------
[-- Attachment #2 --]
Index: etc/rc.subr
===================================================================
RCS file: /home/ncvs/src/etc/rc.subr,v
retrieving revision 1.64
diff -u -r1.64 rc.subr
--- etc/rc.subr 26 Jul 2006 08:03:24 -0000 1.64
+++ etc/rc.subr 13 Aug 2006 16:40:41 -0000
@@ -1351,10 +1351,30 @@
# $3 = (optional) extra mdmfs flags
mount_md()
{
+ case $1 in
+ [Aa][Uu][Tt][Oo])
+ # autosize memory disk to 1/8 of physical memory,
+ # but in range 8..128M
+ size=$((`${SYSCTL_N} hw.physmem` / 8388608))
+ if [ $size -lt 8 ]; then
+ size=8
+ fi
+ if [ $size -gt 128 ]; then
+ size=128
+ fi
+ size="${size}M"
+ ;;
+ *)
+ size=$1
+ esac
if [ -n "$3" ]; then
flags="$3"
fi
- /sbin/mdmfs $flags -s $1 md $2
+ # for swapless machines, add -M flag to fix md in memory
+ if [ `${SYSCTL_N} vm.nswapdev` = "0" ]; then
+ flags="-M $flags"
+ fi
+ /sbin/mdmfs $flags -s $size md $2
}
# Code common to scripts that need to load a kernel module
Index: etc/defaults/rc.conf
===================================================================
RCS file: /home/ncvs/src/etc/defaults/rc.conf,v
retrieving revision 1.291
diff -u -r1.291 rc.conf
--- etc/defaults/rc.conf 5 Aug 2006 20:28:50 -0000 1.291
+++ etc/defaults/rc.conf 13 Aug 2006 16:40:41 -0000
@@ -42,11 +42,11 @@
powerd_flags="" # Flags to powerd (if enabled).
removable_route_flush="YES" # Flush routes when removing an interface
tmpmfs="AUTO" # Set to YES to always create an mfs /tmp, NO to never
-tmpsize="20m" # Size of mfs /tmp if created
-tmpmfs_flags="-S -M" # Extra mdmfs options for the mfs /tmp
+tmpsize="20m" # Size of mfs /tmp if created, AUTO to 1/8 of memory
+tmpmfs_flags="-S" # Extra mdmfs options for the mfs /tmp
varmfs="AUTO" # Set to YES to always create an mfs /var, NO to never
varsize="32m" # Size of mfs /var if created
-varmfs_flags="-S -M" # Extra mount options for the mfs /var
+varmfs_flags="-S" # Extra mount options for the mfs /var
populate_var="AUTO" # Set to YES to always (re)populate /var, NO to never
cleanvar_enable="YES" # Clean the /var directory
local_startup="/usr/local/etc/rc.d /usr/X11R6/etc/rc.d" # startup script dirs.
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060813204106.P22009>
