Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 1 Jun 2006 03:20:24 +0300
From:      Giorgos Keramidas <keramida@freebsd.org>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        freebsd-current@freebsd.org
Subject:   Re: md /tmp and async mounts
Message-ID:  <20060601002024.GA1453@gothmog.pc>
In-Reply-To: <20060524204617.GA13701@gothmog.pc>
References:  <20060522211223.GA3621@xor.obsecurity.org> <20060522231437.GC1446@odin.ac.hmc.edu> <20060523133037.GA2908@gothmog.pc> <20060523143013.GA11472@ci0.org> <20060523194106.GA46634@xor.obsecurity.org> <20060524203645.GB13500@gothmog.pc> <20060524203747.GA88742@xor.obsecurity.org> <20060524204617.GA13701@gothmog.pc>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2006-05-24 23:46, Giorgos Keramidas <keramida@ceid.upatras.gr> wrote:
> AFAIK, only /etc/rc.d/tmp and /etc/rc.d/var use the mount_md() function
> from `rc.subr'.  I think `/etc/rc.initdiskless' includes a local version
> of mount_md() and uses that one.
>
> On 2006-05-24 16:37, Kris Kennaway <kris@obsecurity.org> wrote:
> > On Wed, May 24, 2006 at 11:36:45PM +0300, Giorgos Keramidas wrote:
> > > If that is so, do you want me to make the change, or do you want to do
> > > this?
> >
> > I don't have a good idea of what needs to be changed to do all of the
> > above, so if you're familiar with the code you might as well do it.
>
> I can certainly prepare a patch for /etc/rc.d/* files and their
> manpages.  I'll post it for review then :)

The following diff should be sufficient for enabling -o async for
the MFS /tmp and MFS /var filesystems we support in our current
rc.d stuff:

%%%
Index: share/man/man5/rc.conf.5
===================================================================
--- share/man/man5/rc.conf.5	(revision 99)
+++ share/man/man5/rc.conf.5	(revision 101)
@@ -24,7 +24,7 @@
 .\"
 .\" $FreeBSD: src/share/man/man5/rc.conf.5,v 1.298 2006/05/30 16:20:48 matteo Exp $
 .\"
-.Dd May 29, 2006
+.Dd Jun  1, 2006
 .Dt RC.CONF 5
 .Os
 .Sh NAME
@@ -241,12 +241,13 @@
 .Pa /tmp
 is created.
 The default is
-.Dq Li "-S -M" ,
+.Dq Li "-S -M -o async" ,
 which inhibits the use of softupdates on
 .Pa /tmp
 to waste as little space as possible
-and creates a pure memory backed disk, which will never be swapped out,
-for maximum performance and system stability at low memory conditions.
+and creates a pure memory-backed disk, which uses asynchronous I/O
+and will never be swapped out, for maximum performance and system
+stability at low memory conditions.
 See
 .Xr mdmfs 8
 for other options you can use in
@@ -273,12 +274,13 @@
 .Pa /var
 is created.
 The default is
-.Dq Li "-S -M" ,
+.Dq Li "-S -M -o async" ,
 which inhibits the use of softupdates on
 .Pa /var
 to waste as little space as possible
-and creates a pure memory backed disk, which will never be swapped out,
-for maximum performance and system stability at low memory conditions.
+and creates a pure memory-backed disk, which uses asynchronous I/O
+and will never be swapped out, for maximum performance and system
+stability at low memory conditions.
 See
 .Xr mdmfs 8
 for other options you can use in
Index: etc/defaults/rc.conf
===================================================================
--- etc/defaults/rc.conf	(revision 99)
+++ etc/defaults/rc.conf	(revision 101)
@@ -43,10 +43,10 @@
 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
+tmpmfs_flags="-S -M -o async"	# 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 -M -o async"	# 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.
%%%

This doesn't make 'async' the default for all mdmfs mounts.

Making async the default for mdmfs-based filesystems would
require a fair bit of changes to mdmfs, which would have to grow
mount-option parsing capabilities for the `optarg' of the -o
option and make sure that async is always added, unless mdmfs is
called explicitly with `noasync' in its -o option.

Having said this, if this is considered a change we should make,
I can prepare a patch for mdmfs too.

- Giorgos




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060601002024.GA1453>