This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Bootstrap failure due to GC / PCH memory corruption
- From: Ulrich Weigand <weigand at i1 dot informatik dot uni-erlangen dot de>
- To: zack at codesourcery dot com (Zack Weinberg)
- Cc: weigand at i1 dot informatik dot uni-erlangen dot de (Ulrich Weigand), gcc at gcc dot gnu dot org
- Date: Thu, 26 Jun 2003 22:39:17 +0200 (MET DST)
- Subject: 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