Subject: Re: Removing tmpfs' experimental status
To: Julio M. Merino Vidal <jmmv84@gmail.com>
From: Tobias Nygren <tnn+nbsd@nygren.pp.se>
List: tech-kern
Date: 10/22/2006 18:37:42
Julio M. Merino Vidal wrote:
> Hello,
>
> [ please CC me any replies ]
>
> Several people have suggested to remove the experimental status from
> tmpfs so that we can enable it by default in our kernels (not in
> sysinst, though).  I think it was martin@ who said that this would be
> fine but that we first should disable obviously broken functionality
> (read NFS support).  That seems wise advice so...
>
> Unless there are serious objections, I'll do this soon so that it can
> get into 4.0:
> - Change all kernel configurations to remove the 'experimental' status
>  from the TMPFS line.
> - Enable TMPFS by default on all GENERIC kernels.
> - Disable the tmpfs_vfstofh and tmpfs_fhtovfs vfsops so that tmpfs
>  does not support exporting.  (I'm making them optional through a
>  TMPFS_ENABLE_NFS macro so that people interested in fixing it can
>  quickly enable the missing bits.  Of course the macro will go away
>  when things work as expected.)
> - Add some notes in mount_tmpfs(8) BUGS section to explain this as
>  well as some other missing features.
>
> Thanks.
>

I haven't had a tmpfs related crash in a long time, and I use several
multi-gigabyte sized tmpfs filesystems, so I think the quality of tmpfs
code is good. However there's one annoying bug that someone might
be able to figure out:

If you put pkgsrc's wrkobjdir on a tmpfs filesystem, like for example ...

WRKOBJDIR=/tmp/pkgsrc-obj

.. and then try to make install in pkgsrc/devel/autoconf, it will fail with
the output below. This does not occur when wrkobjdir is on an ffs
filesystem. I've reproduced this on i386 and alpha.

--

[...]
Updating man page ./config.guess.1
PATH="../tests:../config:$PATH";  export PATH;  /bin/sh 
/tmp/pkgsrc-obj/devel/autoconf/work.chiyo/autoconf-2.60/config/missing 
--run help2man  --include=./config.guess.x  --include=./common.x  
--output=./config.guess.1.t `echo './config.guess' | sed 's,.*/,,'`
help2man: not found
WARNING: `help2man' is missing on your system.  You should only need it if
         you modified a dependency of a manual page.  You may need the
         `Help2man' package in order for those modifications to take
         effect.  You can get `Help2man' from any GNU archive site.
*** Error code 1

Stop.
make: stopped in /tmp/pkgsrc-obj/devel/autoconf/work.pc164/autoconf-2.60/man
*** Error code 1