Bootstrap failure due to GC / PCH memory corruption

Ulrich Weigand weigand@i1.informatik.uni-erlangen.de
Thu Jun 26 21:18:00 GMT 2003


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



More information about the Gcc mailing list