|
From: Jeremy F. <je...@go...> - 2002-10-28 02:13:41
|
On Wed, 2002-10-23 at 15:58, Julian Seward wrote:
==12966== at 0x4009AAED: calloc (vg_clientfuncs.c:242)
==12966== by 0x4027C7A1: nsRecyclingAllocator::Malloc(unsigned int, int)
(in /mnt/globe/Apps/mozilla-1.0/libxpcom.so)
==12966== by 0x44FC5CAE: (within
/mnt/globe/Apps/mozilla-1.0/components/libjar50.so)
==12966== by 0x439BC812: inflate_blocks (in
/mnt/globe/Apps/mozilla-1.0/libmozz.so)
My question is: memory allocated by calloc(), what state should it start
out in? Surely it should be in some non-shared state (not shared RW as
claimed here) ?
I tried running Mozilla with the attached code LD_PRELOADED. This
reduces a mozilla startup from 11MB of warnings down to only 4.5MB. The
rest look plausible, and I think the thread lifetime segmentation stuff
will help with these.
Mozilla has just finished -- generating 13975 errors in 13924 contexts --
mostly duplicates of a small handful of errors. Incidentally, 1164 different
lock sets were required, so I raised M_LOCKSET_TABLE to 5000 (and committed
it). Most of the locksets were small (1, 2 or 3 elems), but some got quite
large; from a quick scan the biggest is
[1124] = { 0x4365A748 0x4365E424 0x436650F4 0x4366B6C8 0x4374088C
0x437F94E8 0x438214B4 0x43826378 0x4382696C 0x4384CF20
0x438A28E8 0x438A3424 0x45377038 0x45377130 0x45377228
0x45377394 0x462D8E10 0x46C2CB98 0x46C9F474 0x473A20FC
0x473A407C }
I'm not seeing sets anywhere this big, and I'm only seeing about 700
distinct sets. I wonder if there was something broken in the code you
used?
J
|