Re: [Gc] GC_remap fails with ENOMEM on Linux with large (64K) pages.
ivmai at mail.ru
Wed May 27 00:33:38 PDT 2009
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?
More information about the Gc