[MLton] Progress on AMD64/FreeBSD
Jesper Louis Andersen
jesper.louis.andersen at gmail.com
Wed Jun 27 14:08:56 PDT 2007
That sounds like a fine approach. I wonder if the behaviour is different
on 32bit FreeBSD. I'll check it for the sake of interest. I wont be able
to dig too deep into it before the 1st I think but then it gets a round of
work. I hope to get the runtime to run then.
On 6/27/07, Matthew Fluet <fluet at tti-c.org> wrote:
> Matthew Fluet wrote:
> > Jesper Louis Andersen wrote:
> >> Matthew is right, it doesn't cycle. I came to the same conclusion
> >> independently
> >> of him. What nags me however is that since we are not doing MAP_FIXED
> >> location is a hint to the kernel. In principle the kernel is free to
> >> provide
> >> us with
> >> any memory area where it can fit the mapping.
> > That appears to be how things work on linux. There, we request an mmap
> > at the address 0xf800000000000000 and are returned an mmap at the
> > address 0x00002aaaaaab2000.
> > I thought that I read somewhere that mmap would return a higher addresss
> > than the one requested, but not a lower address. Maybe that is what is
> > happening on FreeBSD. It certainly isn't the case on Linux.
> > But, presumably, there was some reason to put in the scan through
> > memory. As Jesper notes, one expects that without MAP_FIXED, we should
> > get back an address if there is enough space.
> I looked back through the SVN/CVS logs. The mmap scan was added at
> revision 834 (Feb. 5, 2002); the commit log indicates that it was a
> PolySpace runtime modification, mostly for performance improvements.
> A few days later, a comment was added to the code explaining that "This
> toggles back and forth between high and low addresses to decrease the
> chance of virtual memory fragmentation causing an mmap to fail. This is
> important for large (>1G) heaps."
> We have never used MAP_FIXED as an option to mmap. Googling for mmap
> man pages doesn't reveal any well-defined behavior of mmap (without
> MAP_FIXED) in the presence of a hint address.
> In any case, I'll change the code to compute a scan stride equal to 1/32
> of the address space. That will give the same behavior on 32-bit
> systems, and will presumably get us quickly to a successful mmap on
> 64-bit systems that interpret the hint more strictly than linux.
> MLton mailing list
> MLton at mlton.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the MLton