]> git.ipfire.org Git - thirdparty/gcc.git/commit
Use MADV_DONTNEED for freeing in garbage collector
authorAndi Kleen <ak@linux.intel.com>
Mon, 17 Oct 2011 14:43:37 +0000 (14:43 +0000)
committerAndi Kleen <ak@gcc.gnu.org>
Mon, 17 Oct 2011 14:43:37 +0000 (14:43 +0000)
commit711a3d82e524cae4fa2acce8f2e363f0f23a6032
treeb0f5ec12dbc9d0cd2f36e94c063c914fbfe5bb72
parent411f92de7a3e15a42d3d640e5f7a0bc4cfc3e049
Use MADV_DONTNEED for freeing in garbage collector

Use the Linux MADV_DONTNEED call to unmap free pages in the garbage
collector.Then keep the unmapped pages in the free list. This avoid
excessive memory fragmentation on large LTO bulds, which can lead
to gcc bumping into the Linux vm_max_map limit per process.

gcc/:

2011-10-08  Andi Kleen  <ak@linux.intel.com>

PR other/50636
* config.in, configure: Regenerate.
* configure.ac (madvise): Add to AC_CHECK_FUNCS.
* ggc-page.c (USING_MADVISE): Add.
(page_entry): Add discarded field.
(alloc_page): Check for discarded pages.
(release_pages): Add USING_MADVISE branch.

From-SVN: r180093
gcc/ChangeLog
gcc/config.in
gcc/configure
gcc/configure.ac
gcc/ggc-page.c