mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-03-26 00:34:17 -07:00
Adding more events corresponding to diagnostics.
Copied from Perforce Change: 179141 ServerID: perforce.ravenbrook.com
This commit is contained in:
parent
28c9bb13f3
commit
fd8a2cce0d
5 changed files with 57 additions and 3 deletions
|
|
@ -1102,7 +1102,8 @@ static Res vmArenaExtend(VMArena vmArena, Size size)
|
|||
break;
|
||||
} while(0);
|
||||
|
||||
|
||||
EVENT3(vmArenaExtendStart, size, chunkSize,
|
||||
VMArenaReserved(VMArena2Arena(vmArena)));
|
||||
DIAG_SINGLEF(( "vmArenaExtend_Start",
|
||||
"to accommodate size $W, try chunkSize $W", (WriteFW)size, (WriteFW)chunkSize,
|
||||
" (VMArenaReserved currently $W bytes)\n",
|
||||
|
|
@ -1129,6 +1130,8 @@ static Res vmArenaExtend(VMArena vmArena, Size size)
|
|||
/* remove slices, down to chunkHalf but no further */
|
||||
for(; chunkSize > chunkHalf; chunkSize -= sliceSize) {
|
||||
if(chunkSize < chunkMin) {
|
||||
EVENT2(vmArenaExtendFail, chunkMin,
|
||||
VMArenaReserved(VMArena2Arena(vmArena)));
|
||||
DIAG_SINGLEF(( "vmArenaExtend_FailMin",
|
||||
"no remaining address-space chunk >= min($W)", (WriteFW)chunkMin,
|
||||
" (so VMArenaReserved remains $W bytes)\n",
|
||||
|
|
@ -1145,6 +1148,7 @@ static Res vmArenaExtend(VMArena vmArena, Size size)
|
|||
|
||||
vmArenaExtend_Done:
|
||||
|
||||
EVENT2(vmArenaExtendDone, chunkSize, VMArenaReserved(VMArena2Arena(vmArena)));
|
||||
DIAG_SINGLEF(( "vmArenaExtend_Done",
|
||||
"Request for new chunk of VM $W bytes succeeded", (WriteFW)chunkSize,
|
||||
" (VMArenaReserved now $W bytes)\n",
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@
|
|||
*/
|
||||
|
||||
#define EventNameMAX ((size_t)19)
|
||||
#define EventCodeMAX ((EventCode)0x0069)
|
||||
#define EventCodeMAX ((EventCode)0x0071)
|
||||
|
||||
/* FIXME: Work out why not-in-use events were not in use and restore or delete them. */
|
||||
|
||||
|
|
@ -155,7 +155,17 @@
|
|||
EVENT(X, ArenaFree , 0x0066, TRUE, Arena) \
|
||||
EVENT(X, ArenaAllocFail , 0x0067, TRUE, Arena) \
|
||||
EVENT(X, SegMerge , 0x0068, TRUE, Seg) \
|
||||
EVENT(X, SegSplit , 0x0069, TRUE, Seg)
|
||||
EVENT(X, SegSplit , 0x0069, TRUE, Seg) \
|
||||
/* Events converted from RHSK's diagnostics */ \
|
||||
EVENT(X, vmArenaExtendStart , 0x006A, TRUE, Arena) \
|
||||
EVENT(X, vmArenaExtendFail , 0x006B, TRUE, Arena) \
|
||||
EVENT(X, vmArenaExtendDone , 0x006C, TRUE, Arena) \
|
||||
EVENT(X, MessagesDropped , 0x006D, TRUE, Arena) \
|
||||
EVENT(X, MessagesExist , 0x006E, TRUE, Arena) \
|
||||
EVENT(X, ChainCondemnAuto , 0x006F, TRUE, Trace) \
|
||||
EVENT(X, TraceFindGrey , 0x0070, TRUE, Trace) \
|
||||
EVENT(X, TraceBandAdvance , 0x0071, TRUE, Trace)
|
||||
|
||||
|
||||
/* Remember to update EventNameMAX and EventCodeMAX in eventcom.h!
|
||||
(These are checked in EventInit.) */
|
||||
|
|
@ -555,6 +565,41 @@
|
|||
PARAM(X, 2, P, segHi) \
|
||||
PARAM(X, 3, A, at)
|
||||
|
||||
#define EVENT_vmArenaExtendStart_PARAMS(PARAM, X) \
|
||||
PARAM(X, 0, W, size) /* size to accommodate */ \
|
||||
PARAM(X, 1, W, chunkSize) /* chunkSize to try */ \
|
||||
PARAM(X, 2, W, reserved) /* current VMArenaReserved */
|
||||
|
||||
#define EVENT_vmArenaExtendFail_PARAMS(PARAM, X) \
|
||||
PARAM(X, 0, W, chunkMin) /* no remaining address space chunk >= chunkMin */ \
|
||||
PARAM(X, 1, W, reserved) /* current VMArenaReserved */
|
||||
|
||||
#define EVENT_vmArenaExtendDone_PARAMS(PARAM, X) \
|
||||
PARAM(X, 0, W, chunkSize) /* request succeeded for chunkSize bytes */ \
|
||||
PARAM(X, 1, W, reserved) /* new VMArenaReserved */
|
||||
|
||||
#define EVENT_MessagesDropped_PARAMS(PARAM, X) \
|
||||
PARAM(X, 0, W, count) /* count of messages dropped */
|
||||
|
||||
#define EVENT_MessagesExist_PARAMS(PARAM, X)
|
||||
|
||||
#define EVENT_ChainCondemnAuto_PARAMS(PARAM, X) \
|
||||
PARAM(X, 0, P, chain) /* chain with gens being condemned */ \
|
||||
PARAM(X, 1, W, topCondemnedGenSerial) /* condemned gens [0..this] */ \
|
||||
PARAM(X, 2, W, genCount) /* total gens in chain */
|
||||
|
||||
#define EVENT_TraceFindGrey_PARAMS(PARAM, X) \
|
||||
PARAM(X, 0, P, arena) \
|
||||
PARAM(X, 1, W, ti) \
|
||||
PARAM(X, 2, P, seg) \
|
||||
PARAM(X, 3, W, rank)
|
||||
|
||||
#define EVENT_TraceBandAdvance_PARAMS(PARAM, X) \
|
||||
PARAM(X, 0, P, arena) \
|
||||
PARAM(X, 1, W, ti) \
|
||||
PARAM(X, 2, W, rank)
|
||||
|
||||
|
||||
#endif /* eventdef_h */
|
||||
|
||||
/* C. COPYRIGHT AND LICENSE
|
||||
|
|
|
|||
|
|
@ -414,6 +414,7 @@ void GlobalsPrepareToDestroy(Globals arenaGlobals)
|
|||
|
||||
/* report dropped messages (currently in diagnostic varieties only) */
|
||||
if(arena->droppedMessages > 0) {
|
||||
EVENT1(MessagesDropped, arena->droppedMessages);
|
||||
DIAG_SINGLEF(( "GlobalsPrepareToDestroy_dropped",
|
||||
"arena->droppedMessages = $U", (WriteFU)arena->droppedMessages,
|
||||
NULL ));
|
||||
|
|
@ -425,6 +426,7 @@ void GlobalsPrepareToDestroy(Globals arenaGlobals)
|
|||
/* the message queue would have dangling pointers to messages */
|
||||
/* whose memory has been unmapped. */
|
||||
if(MessagePoll(arena)) {
|
||||
EVENT0(MessagesExist);
|
||||
DIAG_SINGLEF(( "GlobalsPrepareToDestroy_queue",
|
||||
"Message queue not empty", NULL ));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -295,6 +295,7 @@ Res ChainCondemnAuto(double *mortalityReturn, Chain chain, Trace trace)
|
|||
genNewSize = GenDescNewSize(gen);
|
||||
} while (genNewSize >= gen->capacity * (Size)1024);
|
||||
|
||||
EVENT3(ChainCondemnAuto, chain, topCondemnedGenSerial, chain->genCount);
|
||||
DIAG_SINGLEF(( "ChainCondemnAuto",
|
||||
"condemn gens [0..$U]", (WriteFU)topCondemnedGenSerial,
|
||||
" (of $U)", (WriteFU)chain->genCount,
|
||||
|
|
|
|||
|
|
@ -219,6 +219,7 @@ Bool traceBandAdvance(Trace trace)
|
|||
trace->band = RankAMBIG;
|
||||
return FALSE;
|
||||
}
|
||||
EVENT3(TraceBandAdvance, trace->arena, trace->ti, trace->band);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
|
@ -905,6 +906,7 @@ static Bool traceFindGrey(Seg *segReturn, Rank *rankReturn,
|
|||
}
|
||||
*segReturn = seg;
|
||||
*rankReturn = rank;
|
||||
EVENT4(TraceFindGrey, arena, ti, seg, rank);
|
||||
DIAG( traceFindGrey_diag(TRUE, rank); );
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue