diff options
author | Ben Gamari <ben@smart-cactus.org> | 2022-08-19 15:21:26 -0400 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-10-11 23:45:10 -0400 |
commit | 866c736ef29a07c6f3aa68063ef98ee0ecea12f3 (patch) | |
tree | 2e213cf10bc8d25a31020f5128969de25b09a140 /rts/eventlog | |
parent | f6e8feb475cf421c408102c2abd531e380b67b00 (diff) | |
download | haskell-866c736ef29a07c6f3aa68063ef98ee0ecea12f3.tar.gz |
rts: Refactor IPE tracing support
Diffstat (limited to 'rts/eventlog')
-rw-r--r-- | rts/eventlog/EventLog.c | 34 | ||||
-rw-r--r-- | rts/eventlog/EventLog.h | 8 |
2 files changed, 15 insertions, 27 deletions
diff --git a/rts/eventlog/EventLog.c b/rts/eventlog/EventLog.c index e576a77a28..4ed48c4412 100644 --- a/rts/eventlog/EventLog.c +++ b/rts/eventlog/EventLog.c @@ -1411,34 +1411,28 @@ void postTickyCounterSamples(StgEntCounter *counters) RELEASE_LOCK(&eventBufMutex); } #endif /* TICKY_TICKY */ -void postIPE(StgWord64 info, - const char *table_name, - const char *closure_desc, - const char *ty_desc, - const char *label, - const char *module, - const char *srcloc) +void postIPE(const InfoProvEnt *ipe) { ACQUIRE_LOCK(&eventBufMutex); - StgWord table_name_len = strlen(table_name); - StgWord closure_desc_len = strlen(closure_desc); - StgWord ty_desc_len = strlen(ty_desc); - StgWord label_len = strlen(label); - StgWord module_len = strlen(module); - StgWord srcloc_len = strlen(srcloc); + StgWord table_name_len = strlen(ipe->prov.table_name); + StgWord closure_desc_len = strlen(ipe->prov.closure_desc); + StgWord ty_desc_len = strlen(ipe->prov.ty_desc); + StgWord label_len = strlen(ipe->prov.label); + StgWord module_len = strlen(ipe->prov.module); + StgWord srcloc_len = strlen(ipe->prov.srcloc); // 8 for the info word // 6 for the number of strings in the payload as postString adds 1 to the length StgWord len = 8+table_name_len+closure_desc_len+ty_desc_len+label_len+module_len+srcloc_len+6; ensureRoomForVariableEvent(&eventBuf, len); postEventHeader(&eventBuf, EVENT_IPE); postPayloadSize(&eventBuf, len); - postWord64(&eventBuf, info); - postString(&eventBuf, table_name); - postString(&eventBuf, closure_desc); - postString(&eventBuf, ty_desc); - postString(&eventBuf, label); - postString(&eventBuf, module); - postString(&eventBuf, srcloc); + postWord64(&eventBuf, (StgWord) ipe->info); + postString(&eventBuf, ipe->prov.table_name); + postString(&eventBuf, ipe->prov.closure_desc); + postString(&eventBuf, ipe->prov.ty_desc); + postString(&eventBuf, ipe->prov.label); + postString(&eventBuf, ipe->prov.module); + postString(&eventBuf, ipe->prov.srcloc); RELEASE_LOCK(&eventBufMutex); } diff --git a/rts/eventlog/EventLog.h b/rts/eventlog/EventLog.h index 39be13674e..2dc4ab4c1d 100644 --- a/rts/eventlog/EventLog.h +++ b/rts/eventlog/EventLog.h @@ -190,13 +190,7 @@ void postProfSampleCostCentre(Capability *cap, void postProfBegin(void); #endif /* PROFILING */ -void postIPE(StgWord64 info, - const char *table_name, - const char *closure_desc, - const char *ty_desc, - const char *label, - const char *module, - const char *srcloc); +void postIPE(const InfoProvEnt *ipe); void postConcUpdRemSetFlush(Capability *cap); void postConcMarkEnd(StgWord32 marked_obj_count); |