On Fri, Oct 21, 2011 at 7:52 AM, Andi Kleen <a...@firstfloor.org> wrote: > From: Andi Kleen <a...@linux.intel.com> > > This one place in ggc forgot to round page_entry->bytes to the > next page boundary, which lead to all the heuristics in freeing to > check for continuous memory failing. Round here too, like all other > allocators already do. The memory consumed should be the same > for MMAP because the kernel would round anyways. It may slightly > increase memory usage when malloc groups are used. > > This will also increase the hitrate on the free page list > slightly.
Ok. Thanks, RIchard. > gcc/: > > 2011-10-18 Andi Kleen <a...@linux.intel.com> > > * ggc-page.c (alloc_pages): Always round up entry_size. > --- > gcc/ggc-page.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/gcc/ggc-page.c b/gcc/ggc-page.c > index 2da99db..ba88e3f 100644 > --- a/gcc/ggc-page.c > +++ b/gcc/ggc-page.c > @@ -736,6 +736,7 @@ alloc_page (unsigned order) > entry_size = num_objects * OBJECT_SIZE (order); > if (entry_size < G.pagesize) > entry_size = G.pagesize; > + entry_size = ROUND_UP (entry_size, G.pagesize); > > entry = NULL; > page = NULL; > -- > 1.7.5.4 > >