-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 04/20/11 15:08, Dimitrios Apostolou wrote: > Hello list, > > while trying to build gcc-4.6.0 on my sparcstation, I got gengtype OOM > killed. That's when I noticed that its RAM usage peaks at 150MB, which > is a bit excessive for parsing a ~500K text file. > > The attached patch fixes the leak and gengtype now uses a peak of 4MB > heap. Hopefully I don't do something wrong, since it took me a while to > understand those obstacks... The code in question creates an obstack, allocates (and grows) a single object on the obstack, then frees the object. This leaks the underlying obstack structure itself and potentially any chunks that were too small to hold the object.
It turns out there's a similar leak in gengtype.c which is fixed in the same way. A quick valgrind test shows that prior to your change gengtype leaked roughly 200M, after your change it leaks about 1.3M and after fixing gengtype it leaks a little under 300k. I'll run those changes through the usual tests and check in the changes assuming they pass those tests. Thanks for the patch! > > P.S. I was trying to test gcc on a rare arch (sparc-unknown-linux-gnu) > but unfortunately the sparcstation crashed and burned after this, so I > can't continue the build and report back :-( :( My old PA box has similar problems, though it merely overheats before a bootstrap can complete, so in theory I could coax it to finish a bootstrap. Luckily others (particularly John) have stepped in over the last decade and taken excellent care of the PA port. Jeff -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org/ iQEcBAEBAgAGBQJNr2RiAAoJEBRtltQi2kC7ryUH/iYvVw8LWZNWc1zSczCOOo8w T8uyVX6WX+0xjPDA52si34BdCXfKdNDmtQXAVpnRbbTrgT42lj1bTH9c9KLadWEZ 0/FUZQB5VGQTMYah7iDDAfyjUdyRRCZW/YWnbyfAP0UdVTR7xJsjqjjWEetuyyFA jF6WQYovzWzjssUnKfPnD/WyQxoPm+gihBVw0abhdPpojXcH8uMYrXpZrGLEk0QA drR0ogL3ZKNJiRMFZQH5NKrhhx76mPiACsRZmCJkXSm+N6GqRsJFE9gGbc7Lwpdn bVjd1CGo5yYCscEM/yUBS4fclO6aDRRdMbT5/cVsObYXv58WGG1gfk0F6g1GqFs= =d6SQ -----END PGP SIGNATURE-----