Free large chunks in ggc v2
authorAndi Kleen <ak@linux.intel.com>
Sat, 29 Oct 2011 01:01:54 +0000 (01:01 +0000)
committerAndi Kleen <ak@gcc.gnu.org>
Sat, 29 Oct 2011 01:01:54 +0000 (01:01 +0000)
commitd33ef9a52bb4a561ec8fb14ad4f45c68dc57bc72
tree2071cd9a9389dac958320f1bd9ae2bb9c110cc2b
parentbf72b0094aa097ec23fdac68b33d2f86274bfd1d
Free large chunks in ggc v2

This implements the freeing back of large chunks in the ggc madvise path
Richard Guenther asked for.  This way on systems with limited
address space malloc() and other allocators still have
a chance to get back at some of the memory ggc freed. The
fragmented pages are still just given back, but the address space
stays allocated.

I tried freeing only aligned 2MB areas to optimize for 2MB huge
pages, but the hit rate was quite low, so I switched to 1MB+
unaligned areas.

v2: Hardcode free unit size instead of param

gcc/:
2011-10-18  Andi Kleen  <ak@linux.intel.com>

* ggc-page (release_pages): First free large continuous
chunks in the madvise path.

From-SVN: r180648
gcc/ChangeLog
gcc/ggc-page.c