The VMCompact diag was calculating the live percentage by dividing by condemned size. Don't do this if condemned is zero.
Copied from Perforce
Change: 170441
ServerID: perforce.ravenbrook.com
arenavm.c VMCompact diag: also emit where chunks were gained but not lost during collection -- that is: collections where there was a vmem increase, and ArenaCompact was *not* able to return any chunks.
Copied from Perforce
Change: 170101
ServerID: perforce.ravenbrook.com
arenavm.c, trace.c, mpmst.h -- trace->preTraceArenaReserved, to show pre- and peak-vmem during collection
Copied from Perforce
Change: 170098
ServerID: perforce.ravenbrook.com
arenavm.c:
- M_whole, M_frac: print count of bytes as Megabytes
- diag on VMCompact after all client-requested traces, plus any others where we returned a chunk.
- show vmem change, and also trace cond, live / % / stuck(pip), notCond
mpm.c -- new "$3" format for 0-padding 3-char-wide field, for thousandths of a MB
zcoll.c -- try some new parameters for tests
diag.c -- just VMCompact diag
Copied from Perforce
Change: 170097
ServerID: perforce.ravenbrook.com
arenavm.c -- move chunk-return into new function "VMCompact".
(also, in VMArenaFinish, null out arena->primary in VMArenaFinish, so it is not left dangling).
arena.c, arenavm.c, mpm.h, mpmst.h, mpmtypes.h:
arena->class->compact: ArenaCompact, ArenaTrivCompact, VMCompact
trace.c -- traceReclaim calls ArenaCompact!
Copied from Perforce
Change: 170095
ServerID: perforce.ravenbrook.com
arenavm.c -- on VMFree(), destroy any empty chunks (except the primary). (VMFree is not the ideal place to do it, but works for proof of concept).
tract.c -- fix ChunkCache defects:
- previously, if cache is empty (chunkCache->chunk == NULL) then other fields are *undefined*; but code looks at them anyway (!) without first checking chunkCache->chunk;
- change it (.chunk.empty.fields) so that, if cache is empty, other fields have defined values: cache-using code may look at them, and they are chosen so that no cache hit will occur.
--> this fixes crashing defect shown by changelist 170072
- AVERT(ChunkCache) in the many places it should be checked;
- use AVERT_CRITICAL in ChunkEncache, because it is called by ChunkOfAddr;
Also:
plan.txt -- notes on use of primary chunk.
config.h -- DIAG also in ci, please [Do not integ to master]
diag.c -- skip ChainCondemnAuto diag thanks
zcoll.c -- move printf announcing Destroying arena etc to just before, not just after, we do it.
Copied from Perforce
Change: 170082
ServerID: perforce.ravenbrook.com
arenavm.c: VMFree is okay for testing chunk-ret; though just sparePagesPurge() for now;
diag.c: show what we want for using zcoll to show chunk-ret:
VM_ix_Create/Destroy
TraceStart, excpet only briefly for dyn-crit (why=2) and not at all for minor
locus.c: no newline on "condemn gens" diag please
tract.c: ChunkDecache is BROKEN; just add AVER to catch this for now
vmix.c: VM_ix_Create_ok/VM_ix_Destroy (vmw3.c needs similar)
zcoll.c:
release after mps_arena_collect!!!
make, collect, make, collect, to show chunk-ret
10MB arena means many chunks
None of this is releaseable quality of course.
Copied from Perforce
Change: 170071
ServerID: perforce.ravenbrook.com
ArenaTractsInZones - count how many tracts are used/free in each zone
GangsetFullDescribe, GangFullDescribe - show usage
mpm.c: new WriteF tag "u" is space-padded 3-column unsigned
Copied from Perforce
Change: 164896
ServerID: perforce.ravenbrook.com
mps_arena_vm_growth(): new interface function; client specifies
desired arena increment, and minimum arena increment.
arenavm.c: .chunk-create.fail: try a succession of _gradually_
reducing sizes (aiming to 'waste' at most 1/8th of the available
space, rather than the 1/2 that can be 'wasted' by halving each
time); stopping at specified minimum arena increment
(VMArenaStruct.extendMin) or 4K.
Copied from Perforce
Change: 164894
ServerID: perforce.ravenbrook.com
Gangset and Gangs. SegPrefZonesOpen/Next/Close to try various
zonesets appropriate to the SegPref's gang.
Copied from Perforce
Change: 164231
ServerID: perforce.ravenbrook.com
(Also, move comment: the test that Fails if the chunk is so small
that stripes are smaller than pages is in arena.c, not arenavm.c)
Copied from Perforce
Change: 163813
ServerID: perforce.ravenbrook.com
a) choose a better chunkSize;
b) fallback to smaller sizes if request fails.
*** WARNING ***
VMChunkCreate() has test-code that deliberately fails requests,
for testing this functionality.
Copied from Perforce
Change: 163665
ServerID: perforce.ravenbrook.com
of gens, removing hardwired limit of 3.
vmArenaExtend(): diagnostic: report when VM arena is extended (#if0)
Copied from Perforce
Change: 162933
ServerID: perforce.ravenbrook.com
Hope to fix in time, but for now I need DIAG-out to work, so switch
to printf (yes, really, I know, sorry).
Also, only do DIAG-out in variety.di, to avoid damage to .ci.
So for now, remove DIAG_WRITEF and DIAG from arenavm and trace.
To test, add DIAG_PRINTF in trace.
Copied from Perforce
Change: 162387
ServerID: perforce.ravenbrook.com
arena.c: turn off call from ArenaDescribe to GlobalsDescribe,
because it outputs too much stuff (perhaps this change should be
reverted later).
Copied from Perforce
Change: 162212
ServerID: perforce.ravenbrook.com
arenavm.c: add DIAG(ArenaDescribe) in VMChunkCreate;
amcss.c: make initial-size to mps_arena_create comically small,
to prompt VMChunkCreates and occasional MPS_RESERVE_BLOCK: 7's
(== commit-limit, which is ok; probably)
Copied from Perforce
Change: 162211
ServerID: perforce.ravenbrook.com
Making some new files consistent with changes from that branch.
Deleting some new Global Graphics confidential files.
Copied from Perforce
Change: 30256
ServerID: perforce.ravenbrook.com
This change will be integrated but ignored (-ay) to the gg-epcore/union sources, so that they retain HopeNames.
Copied from Perforce
Change: 24911
ServerID: perforce.ravenbrook.com
This was achieved by partially undoing changelist 24817, including an accidental corruption of eventgen.pl.
Copied from Perforce
Change: 24877
ServerID: perforce.ravenbrook.com