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] 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@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 -- David H. Wolfskill david@catwhisker.org Prediction is difficult, especially if it involves the future. -- Niels Bohr See http://www.catwhisker.org/~david/publickey.gpg for public key.
David Wolfskill <david@catwhisker.org> writes:> 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] > > 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@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.]It's hard-coded into rc_subr. Changing it to a default parameter and overriding it in rc.conf would probably be easy to get committed.
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). Malcolm> 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@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