diff options
| author | Richard Brooksby | 2012-08-31 19:33:45 +0100 |
|---|---|---|
| committer | Richard Brooksby | 2012-08-31 19:33:45 +0100 |
| commit | e00495829f3974bb9e9eaee6876687f790d9c4df (patch) | |
| tree | 611a762aa7f929e919cc2843a7b4dbc8fbb02c1e /mps/code | |
| parent | fef6957117523c9ae47f2c9ea40762e2dc7faf0b (diff) | |
| download | emacs-e00495829f3974bb9e9eaee6876687f790d9c4df.tar.gz emacs-e00495829f3974bb9e9eaee6876687f790d9c4df.zip | |
Adding more events corresponding to diagnostics.
Copied from Perforce
Change: 179141
ServerID: perforce.ravenbrook.com
Diffstat (limited to 'mps/code')
| -rw-r--r-- | mps/code/arenavm.c | 6 | ||||
| -rw-r--r-- | mps/code/eventdef.h | 49 | ||||
| -rw-r--r-- | mps/code/global.c | 2 | ||||
| -rw-r--r-- | mps/code/locus.c | 1 | ||||
| -rw-r--r-- | mps/code/trace.c | 2 |
5 files changed, 57 insertions, 3 deletions
diff --git a/mps/code/arenavm.c b/mps/code/arenavm.c index b0d69b6b246..ddff692d28e 100644 --- a/mps/code/arenavm.c +++ b/mps/code/arenavm.c | |||
| @@ -1102,7 +1102,8 @@ static Res vmArenaExtend(VMArena vmArena, Size size) | |||
| 1102 | break; | 1102 | break; |
| 1103 | } while(0); | 1103 | } while(0); |
| 1104 | 1104 | ||
| 1105 | 1105 | EVENT3(vmArenaExtendStart, size, chunkSize, | |
| 1106 | VMArenaReserved(VMArena2Arena(vmArena))); | ||
| 1106 | DIAG_SINGLEF(( "vmArenaExtend_Start", | 1107 | DIAG_SINGLEF(( "vmArenaExtend_Start", |
| 1107 | "to accommodate size $W, try chunkSize $W", (WriteFW)size, (WriteFW)chunkSize, | 1108 | "to accommodate size $W, try chunkSize $W", (WriteFW)size, (WriteFW)chunkSize, |
| 1108 | " (VMArenaReserved currently $W bytes)\n", | 1109 | " (VMArenaReserved currently $W bytes)\n", |
| @@ -1129,6 +1130,8 @@ static Res vmArenaExtend(VMArena vmArena, Size size) | |||
| 1129 | /* remove slices, down to chunkHalf but no further */ | 1130 | /* remove slices, down to chunkHalf but no further */ |
| 1130 | for(; chunkSize > chunkHalf; chunkSize -= sliceSize) { | 1131 | for(; chunkSize > chunkHalf; chunkSize -= sliceSize) { |
| 1131 | if(chunkSize < chunkMin) { | 1132 | if(chunkSize < chunkMin) { |
| 1133 | EVENT2(vmArenaExtendFail, chunkMin, | ||
| 1134 | VMArenaReserved(VMArena2Arena(vmArena))); | ||
| 1132 | DIAG_SINGLEF(( "vmArenaExtend_FailMin", | 1135 | DIAG_SINGLEF(( "vmArenaExtend_FailMin", |
| 1133 | "no remaining address-space chunk >= min($W)", (WriteFW)chunkMin, | 1136 | "no remaining address-space chunk >= min($W)", (WriteFW)chunkMin, |
| 1134 | " (so VMArenaReserved remains $W bytes)\n", | 1137 | " (so VMArenaReserved remains $W bytes)\n", |
| @@ -1145,6 +1148,7 @@ static Res vmArenaExtend(VMArena vmArena, Size size) | |||
| 1145 | 1148 | ||
| 1146 | vmArenaExtend_Done: | 1149 | vmArenaExtend_Done: |
| 1147 | 1150 | ||
| 1151 | EVENT2(vmArenaExtendDone, chunkSize, VMArenaReserved(VMArena2Arena(vmArena))); | ||
| 1148 | DIAG_SINGLEF(( "vmArenaExtend_Done", | 1152 | DIAG_SINGLEF(( "vmArenaExtend_Done", |
| 1149 | "Request for new chunk of VM $W bytes succeeded", (WriteFW)chunkSize, | 1153 | "Request for new chunk of VM $W bytes succeeded", (WriteFW)chunkSize, |
| 1150 | " (VMArenaReserved now $W bytes)\n", | 1154 | " (VMArenaReserved now $W bytes)\n", |
diff --git a/mps/code/eventdef.h b/mps/code/eventdef.h index 27bb3bb6320..004ee6d9668 100644 --- a/mps/code/eventdef.h +++ b/mps/code/eventdef.h | |||
| @@ -53,7 +53,7 @@ | |||
| 53 | */ | 53 | */ |
| 54 | 54 | ||
| 55 | #define EventNameMAX ((size_t)19) | 55 | #define EventNameMAX ((size_t)19) |
| 56 | #define EventCodeMAX ((EventCode)0x0069) | 56 | #define EventCodeMAX ((EventCode)0x0071) |
| 57 | 57 | ||
| 58 | /* FIXME: Work out why not-in-use events were not in use and restore or delete them. */ | 58 | /* FIXME: Work out why not-in-use events were not in use and restore or delete them. */ |
| 59 | 59 | ||
| @@ -155,7 +155,17 @@ | |||
| 155 | EVENT(X, ArenaFree , 0x0066, TRUE, Arena) \ | 155 | EVENT(X, ArenaFree , 0x0066, TRUE, Arena) \ |
| 156 | EVENT(X, ArenaAllocFail , 0x0067, TRUE, Arena) \ | 156 | EVENT(X, ArenaAllocFail , 0x0067, TRUE, Arena) \ |
| 157 | EVENT(X, SegMerge , 0x0068, TRUE, Seg) \ | 157 | EVENT(X, SegMerge , 0x0068, TRUE, Seg) \ |
| 158 | EVENT(X, SegSplit , 0x0069, TRUE, Seg) | 158 | EVENT(X, SegSplit , 0x0069, TRUE, Seg) \ |
| 159 | /* Events converted from RHSK's diagnostics */ \ | ||
| 160 | EVENT(X, vmArenaExtendStart , 0x006A, TRUE, Arena) \ | ||
| 161 | EVENT(X, vmArenaExtendFail , 0x006B, TRUE, Arena) \ | ||
| 162 | EVENT(X, vmArenaExtendDone , 0x006C, TRUE, Arena) \ | ||
| 163 | EVENT(X, MessagesDropped , 0x006D, TRUE, Arena) \ | ||
| 164 | EVENT(X, MessagesExist , 0x006E, TRUE, Arena) \ | ||
| 165 | EVENT(X, ChainCondemnAuto , 0x006F, TRUE, Trace) \ | ||
| 166 | EVENT(X, TraceFindGrey , 0x0070, TRUE, Trace) \ | ||
| 167 | EVENT(X, TraceBandAdvance , 0x0071, TRUE, Trace) | ||
| 168 | |||
| 159 | 169 | ||
| 160 | /* Remember to update EventNameMAX and EventCodeMAX in eventcom.h! | 170 | /* Remember to update EventNameMAX and EventCodeMAX in eventcom.h! |
| 161 | (These are checked in EventInit.) */ | 171 | (These are checked in EventInit.) */ |
| @@ -555,6 +565,41 @@ | |||
| 555 | PARAM(X, 2, P, segHi) \ | 565 | PARAM(X, 2, P, segHi) \ |
| 556 | PARAM(X, 3, A, at) | 566 | PARAM(X, 3, A, at) |
| 557 | 567 | ||
| 568 | #define EVENT_vmArenaExtendStart_PARAMS(PARAM, X) \ | ||
| 569 | PARAM(X, 0, W, size) /* size to accommodate */ \ | ||
| 570 | PARAM(X, 1, W, chunkSize) /* chunkSize to try */ \ | ||
| 571 | PARAM(X, 2, W, reserved) /* current VMArenaReserved */ | ||
| 572 | |||
| 573 | #define EVENT_vmArenaExtendFail_PARAMS(PARAM, X) \ | ||
| 574 | PARAM(X, 0, W, chunkMin) /* no remaining address space chunk >= chunkMin */ \ | ||
| 575 | PARAM(X, 1, W, reserved) /* current VMArenaReserved */ | ||
| 576 | |||
| 577 | #define EVENT_vmArenaExtendDone_PARAMS(PARAM, X) \ | ||
| 578 | PARAM(X, 0, W, chunkSize) /* request succeeded for chunkSize bytes */ \ | ||
| 579 | PARAM(X, 1, W, reserved) /* new VMArenaReserved */ | ||
| 580 | |||
| 581 | #define EVENT_MessagesDropped_PARAMS(PARAM, X) \ | ||
| 582 | PARAM(X, 0, W, count) /* count of messages dropped */ | ||
| 583 | |||
| 584 | #define EVENT_MessagesExist_PARAMS(PARAM, X) | ||
| 585 | |||
| 586 | #define EVENT_ChainCondemnAuto_PARAMS(PARAM, X) \ | ||
| 587 | PARAM(X, 0, P, chain) /* chain with gens being condemned */ \ | ||
| 588 | PARAM(X, 1, W, topCondemnedGenSerial) /* condemned gens [0..this] */ \ | ||
| 589 | PARAM(X, 2, W, genCount) /* total gens in chain */ | ||
| 590 | |||
| 591 | #define EVENT_TraceFindGrey_PARAMS(PARAM, X) \ | ||
| 592 | PARAM(X, 0, P, arena) \ | ||
| 593 | PARAM(X, 1, W, ti) \ | ||
| 594 | PARAM(X, 2, P, seg) \ | ||
| 595 | PARAM(X, 3, W, rank) | ||
| 596 | |||
| 597 | #define EVENT_TraceBandAdvance_PARAMS(PARAM, X) \ | ||
| 598 | PARAM(X, 0, P, arena) \ | ||
| 599 | PARAM(X, 1, W, ti) \ | ||
| 600 | PARAM(X, 2, W, rank) | ||
| 601 | |||
| 602 | |||
| 558 | #endif /* eventdef_h */ | 603 | #endif /* eventdef_h */ |
| 559 | 604 | ||
| 560 | /* C. COPYRIGHT AND LICENSE | 605 | /* C. COPYRIGHT AND LICENSE |
diff --git a/mps/code/global.c b/mps/code/global.c index bb666f4e44b..974ab9afffe 100644 --- a/mps/code/global.c +++ b/mps/code/global.c | |||
| @@ -414,6 +414,7 @@ void GlobalsPrepareToDestroy(Globals arenaGlobals) | |||
| 414 | 414 | ||
| 415 | /* report dropped messages (currently in diagnostic varieties only) */ | 415 | /* report dropped messages (currently in diagnostic varieties only) */ |
| 416 | if(arena->droppedMessages > 0) { | 416 | if(arena->droppedMessages > 0) { |
| 417 | EVENT1(MessagesDropped, arena->droppedMessages); | ||
| 417 | DIAG_SINGLEF(( "GlobalsPrepareToDestroy_dropped", | 418 | DIAG_SINGLEF(( "GlobalsPrepareToDestroy_dropped", |
| 418 | "arena->droppedMessages = $U", (WriteFU)arena->droppedMessages, | 419 | "arena->droppedMessages = $U", (WriteFU)arena->droppedMessages, |
| 419 | NULL )); | 420 | NULL )); |
| @@ -425,6 +426,7 @@ void GlobalsPrepareToDestroy(Globals arenaGlobals) | |||
| 425 | /* the message queue would have dangling pointers to messages */ | 426 | /* the message queue would have dangling pointers to messages */ |
| 426 | /* whose memory has been unmapped. */ | 427 | /* whose memory has been unmapped. */ |
| 427 | if(MessagePoll(arena)) { | 428 | if(MessagePoll(arena)) { |
| 429 | EVENT0(MessagesExist); | ||
| 428 | DIAG_SINGLEF(( "GlobalsPrepareToDestroy_queue", | 430 | DIAG_SINGLEF(( "GlobalsPrepareToDestroy_queue", |
| 429 | "Message queue not empty", NULL )); | 431 | "Message queue not empty", NULL )); |
| 430 | } | 432 | } |
diff --git a/mps/code/locus.c b/mps/code/locus.c index 22473026dc6..6ea5127ee12 100644 --- a/mps/code/locus.c +++ b/mps/code/locus.c | |||
| @@ -295,6 +295,7 @@ Res ChainCondemnAuto(double *mortalityReturn, Chain chain, Trace trace) | |||
| 295 | genNewSize = GenDescNewSize(gen); | 295 | genNewSize = GenDescNewSize(gen); |
| 296 | } while (genNewSize >= gen->capacity * (Size)1024); | 296 | } while (genNewSize >= gen->capacity * (Size)1024); |
| 297 | 297 | ||
| 298 | EVENT3(ChainCondemnAuto, chain, topCondemnedGenSerial, chain->genCount); | ||
| 298 | DIAG_SINGLEF(( "ChainCondemnAuto", | 299 | DIAG_SINGLEF(( "ChainCondemnAuto", |
| 299 | "condemn gens [0..$U]", (WriteFU)topCondemnedGenSerial, | 300 | "condemn gens [0..$U]", (WriteFU)topCondemnedGenSerial, |
| 300 | " (of $U)", (WriteFU)chain->genCount, | 301 | " (of $U)", (WriteFU)chain->genCount, |
diff --git a/mps/code/trace.c b/mps/code/trace.c index c362a4809cf..9d2ea3af249 100644 --- a/mps/code/trace.c +++ b/mps/code/trace.c | |||
| @@ -219,6 +219,7 @@ Bool traceBandAdvance(Trace trace) | |||
| 219 | trace->band = RankAMBIG; | 219 | trace->band = RankAMBIG; |
| 220 | return FALSE; | 220 | return FALSE; |
| 221 | } | 221 | } |
| 222 | EVENT3(TraceBandAdvance, trace->arena, trace->ti, trace->band); | ||
| 222 | return TRUE; | 223 | return TRUE; |
| 223 | } | 224 | } |
| 224 | 225 | ||
| @@ -905,6 +906,7 @@ static Bool traceFindGrey(Seg *segReturn, Rank *rankReturn, | |||
| 905 | } | 906 | } |
| 906 | *segReturn = seg; | 907 | *segReturn = seg; |
| 907 | *rankReturn = rank; | 908 | *rankReturn = rank; |
| 909 | EVENT4(TraceFindGrey, arena, ti, seg, rank); | ||
| 908 | DIAG( traceFindGrey_diag(TRUE, rank); ); | 910 | DIAG( traceFindGrey_diag(TRUE, rank); ); |
| 909 | return TRUE; | 911 | return TRUE; |
| 910 | } | 912 | } |