[MLton-devel] Solaris port

Stephen Weeks MLton@mlton.org
Mon, 16 Jun 2003 18:27:41 -0700


Alain, I am curious to know if the GC improvements to eliminate calls
to getrusage and sigprocmask cut down the system times to acceptable
levels.  Here's what I determined for the other ideas I mentioned.

> I don't know if there's an mremap equivalent for Solaris.

I looked around and didn't find anything here.

> Another problem is repeated mmap and munmap of the card map and the
> cross map.  Maybe this problem can be alleviated by keeping those in
> a region of the heap.

It's not that easy to put the cardmap and crossmap at one end of the
heap.  They can't be stored at the beginning, since when the heap is
resized, the cardmap and crossmap need to be resized as well, and that
would cause the start of the heap to be shifted.  It's also not easy
to place them at the end, since when copying to a new heap, we need to
free space at the end of the old heap to avoid paging.  So, I decided
not to put the cardmap and crossmap in the heap.  Instead, I combined
them into one entity, which cuts the number of mmaps/munmaps for them
in half.  I've checked in the fix.

> Any easy fix would be to set COPY_CHUNK_SIZE to something larger, like
> 64M.  Of course, this increases the chance of paging.

I went ahead and changed COPY_CHUNK_SIZE to 0x2000000 (32M) in gc.c.
Maybe in the future it should be set to some fraction of s->ram.



-------------------------------------------------------
This SF.Net email is sponsored by: INetU
Attention Web Developers & Consultants: Become An INetU Hosting Partner.
Refer Dedicated Servers. We Manage Them. You Get 10% Monthly Commission!
INetU Dedicated Managed Hosting http://www.inetu.net/partner/index.php
_______________________________________________
MLton-devel mailing list
MLton-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mlton-devel