5.x: how do I get a *swap*-backed /tmp via rc.conf?

Malcolm Kay malcolm.kay at internode.on.net
Mon Oct 10 07:54:52 PDT 2005

On Mon, 10 Oct 2005 11:37 am, David Wolfskill wrote:
> I made the somewhat unexpected discovery that in FreeeBSD
> 5-STABLE, if I use the "tmp*" variables in /etc/rc.conf to
> have an MFS /tmp created, it is apparentyly not swap-backed --
> as I expected from the part of the mdmfs man page that reads:
>      By default, mdmfs creates a swap-based (MD_SWAP) disk
> with soft-updates enabled and mounts it on mount-point.
> and a review of the way mdmfs is invoked by /etc/rc; rather,
> it appears to be malloc-backed.
> Here's what's in /etc/{defaults/,}rc.conf about it on one such
> machine:
> g1-59(5.4-S)[42] grep tmp /etc/{default*/,}rc.conf
> /etc/defaults/rc.conf:tmpmfs="AUTO"             # Set to YES
> to always create an mfs /tmp, NO to never
> /etc/defaults/rc.conf:tmpsize="20m"             # Size of mfs
> /tmp if created /etc/defaults/rc.conf:tmpmfs_flags="-S" #
> Extra mdmfs options for the mfs /tmp
> /etc/defaults/rc.conf:isdn_traceflags="-f /var/tmp/isdntrace0"
>  # Flags for isdntrace
> /etc/defaults/rc.conf:clear_tmp_enable="NO"     # Clear /tmp
> at startup. /etc/rc.conf:tmpmfs="YES"
> /etc/rc.conf:tmpsize="512m"
> /etc/rc.conf:tmpmfs_flags="-i4096"
> g1-59(5.4-S)[43]

These paramaters are used by the startup script /etc/rc.d/tmp
which calls mount_md defined in /etc/rc.subr which specifically
adds the _M (malloc) option to the mdmfs call.

You'll need to invoke your own script (or; not so nice;
edit rc.subr).


> And:
> g1-59(5.4-S)[43] sudo mdconfig -l -u md0
> md0     malloc  524288 KBytes
> g1-59(5.4-S)[44]
> Oh, for some sense of what we're working with:
> g1-59(5.4-S)[44] uname -a
> FreeBSD g1-59.catwhisker.org. 5.4-STABLE FreeBSD 5.4-STABLE
> #6: Sun Oct  9 06:24:17 PDT 2005    
> root at g1-59.catwhisker.org.:/usr/obj/usr/src/sys/LAPTOP  i386
> g1-59(5.4-S)[45]
> So, back to my original question:  how do I get a
> *swap*-backed /tmp?
> [The way I was alerted to the possibliity that my /tmp might
> not be swap-backed is that I was using a machine running
> 5-STABLE as a CVS server, in order to update /usr/ports on
> another machine.  That's why I have the -i4096 argument in
> there, BTW:  to double the number of inodes for when the CVS
> server starts consuming them with wild abandon as it builds an
> isomorphic hierarchy to /usr/ports in /tmp.  I think it only
> took me 3 panics before I poked around in the mailing list
> archives and noted scottl's comment about using a swap-backed
> /tmp instead, which got me wondering what backing store my
> /tmp was using.  I did look at /etc/rc.d/tmp, as well a
> /etc/rc.subr, but I'm still failing to see why I'm getting a
> malloc-backed /tmp.  FWIW, although the /tmp in question is an
> MFS in 4.x, I do this (use the box as a CVS server for
> /usr/ports) without  problem on 4.x.]
> (I don't need separate copies of any replies; I read -stable,
> so I set Reply-To as an appropriate hint.)
> Thanks.
> Peace,
> david

More information about the freebsd-stable mailing list