On Tuesday, 02 August 2011, Peter Keller wrote:
> Dear list,
>
> On Tue, 2011-08-02 at 13:03 +0100, Clemens Vonrhein wrote:
> > Dear Miguel,
> >
> > yes, I hit the same issue - and for me the machine then completely
> > freezes and needs a reboot.
>
> I wrote this mmap test (back when VMS was still supported by CCP4, and
> porting CCP4 to Mac's was just an idea that got a laugh at the bar :-)).
>
> > The patch for configure:
> >
> > --- configure.orig 2011-05-05 16:07:55.000000000 +0100
> > +++ configure 2011-07-21 16:05:57.000000000 +0100
> > @@ -3206,6 +3206,9 @@
> > if test "$system" = sunos64; then
> > xopts="$xopts --enable-64-bit=yes"
> > fi
> > + case `uname` in
> > + Darwin*) xopts="$xopts --disable-mmap";;
> > + esac
>
> Doing this may result in excess memory consumption, so I can't recommend
> it as a good workaround, and it seems to me that this test needs looking
> at again.
To the best of my knowledge (which I acknowledge may be out of date)
mmap over NFS is always a bad idea. Although below you mention the Apache
server as an example of a program that uses it, the Apache installation
guide notes that it may cause serious problems and gives instructions for
disabling it. So to me it seems that it would be good to give a top-level
option for disabling this even on linux(-ish) systems, not just OSX.
Ethan
> The source is in ccp4-6.2.0/lib/ccif/aclocal.m4, where I made
> the following comment:
>
> > /* Adapted from autoconf's standard HAVE_MMAP test in acspecific.m4 */
>
> IIRC, the adaptation that I did was to check that the system's mmap(2)
> function does not require the first argument to specify a starting
> address for the mapping. These days, modern OS's all have an mmap
> implementation that behaves in the required way, so the test as I
> adapted it is arguably not needed any longer. OTOH, if there is an issue
> with mmap over nfs on certain systems, some sort of test is still
> needed, although a lot of mainstream applications use mmap all the time
> (such as Emacs, Apache http server, etc. etc.). To my astonishment
> though, there doesn't seem to be a standard autoconf test for mmap as it
> is used in contemporary development, and the original of the test that I
> adapted still checks for the old behaviour:
>
> > -- Macro: AC_FUNC_MMAP
> > If the `mmap' function exists and works correctly, define
> > `HAVE_MMAP'. This checks only private fixed mapping of
> > already-mapped memory.
>
> (Checked on autoconf version 2.68)
>
> On a quick test, I don't actually crash our OS X build system, but the
> mmap test does fail. I don't have a lot of time to spend on this now,
> but if anyone from CCP4 is interested in looking into this, please
> contact me off-list.
>
> Regards,
> Peter.
>
>
|