Re: [Gc] GC_remap fails with ENOMEM on Linux with large (64K) pages.

Ivan Maidanski ivmai at mail.ru
Wed May 27 00:33:38 PDT 2009


Hi!

munroesj at us.ibm.com wrote:
> We are trying to use mono 64-bit on SLES11 PowerPC. We are seeing lots
> of failures of the form:
> 
> Mprotect failed at 0x40002790000 (length 131072) with errno 12
> 

It seems that You're using gc v7.1 (or prior). This portion of code is changed a lot (eg., mmap() is used instead of mprotect() here). Could You, please, try to reproduce the problem with the recent CVS version.

> ...
> This problem goes away if we remove -DUSE_MMAP -DUSE_MUNMAP from this line in mono's configure.in:
>                CPPFLAGS="$CPPFLAGS -DGC_LINUX_THREADS -D_GNU_SOURCE
> -D_REENTRANT -DUSE_MMAP -DUSE_MUNMAP"
> 
> So there seems to be problem in libgc which specific to the use of MMAP
> storage with 64K (non-4K) pages as the mprotect is trying to change the
> protections over a gap in the process map.
> 
> So I was wondering if this was a known problem with libgc on large page
> platforms and is there was a fix in the newer versions of libgc?
> 
> Thanks

Bye.


More information about the Gc mailing list