This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Bootstrap failure due to GC / PCH memory corruption


Zack Weinberg wrote:

> My suggestion is that you change ggc_pch_read to create multiple ptes
> per order; in fact, that you create precisely the same ptes that
> ggc_alloc would have if it had allocated everything from scratch.

I tried to do this, but it doesn't work as the PCH routines pack
objects of non-power-of-two size tightly in a way that normally
allocated objects would never be.  This means that unless this is
changed, you cannot have multiple ptes to describe those orders.
I don't understand the PCH stuff enough to implement such a change
(or even decide whether it would be beneficial over all).

> I also suggest that you find out what these objects are that are
> larger than a page.  To first order there shouldn't be any.  The only
> thing I've ever seen allocate more than a page at once from GC arena
> was a giant dense switch statement.

There aren't many, but in the stdc++.gch I have one order-19, three
order-17, and a couple of order-15 and smaller objects.  I don't 
know exactly what all those are; the one that I debugged was some
sort of tree ...

Bye,
Ulrich

-- 
  Dr. Ulrich Weigand
  weigand@informatik.uni-erlangen.de


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]