Skip to content

Commit 70828b1

Browse files
authored
Add signposts for AOD reader state transitions (#15726)
1 parent c8fdddb commit 70828b1

1 file changed

Lines changed: 30 additions & 3 deletions

File tree

Framework/AnalysisSupport/src/AODJAlienReaderHelpers.cxx

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
#include "Framework/RawDeviceService.h"
3535
#include "Framework/DataSpecUtils.h"
3636
#include "Framework/MessageContext.h"
37+
#include "Framework/Signpost.h"
3738
#include "Framework/StringContext.h"
3839
#include "Framework/ConfigContext.h"
3940
#include "DataInputDirector.h"
@@ -60,6 +61,8 @@
6061
using namespace o2;
6162
using namespace o2::aod;
6263

64+
O2_DECLARE_DYNAMIC_LOG(aod_reader);
65+
6366
struct RuntimeWatchdog {
6467
int numberTimeFrames;
6568
uint64_t startTime;
@@ -288,6 +291,30 @@ AlgorithmSpec AODJAlienReaderHelpers::rootFileReaderCallback(ConfigContext const
288291
INVALID_TIMEFRAME,
289292
};
290293
auto readState = TFReaderState::READ_FIRST_TABLE;
294+
[[maybe_unused]] auto stateName = [](TFReaderState state) -> char const* {
295+
switch (state) {
296+
case TFReaderState::READ_FIRST_TABLE:
297+
return "READ_FIRST_TABLE";
298+
case TFReaderState::READ_FIRST_TABLE_FROM_NEXT_FILE:
299+
return "READ_FIRST_TABLE_FROM_NEXT_FILE";
300+
case TFReaderState::READ_NEXT_TABLE:
301+
return "READ_NEXT_TABLE";
302+
case TFReaderState::TRY_NEXT_FILE:
303+
return "TRY_NEXT_FILE";
304+
case TFReaderState::TIMEFRAME_READ:
305+
return "TIMEFRAME_READ";
306+
case TFReaderState::INVALID_TIMEFRAME:
307+
return "INVALID_TIMEFRAME";
308+
}
309+
return "UNKNOWN";
310+
};
311+
O2_SIGNPOST_ID_FROM_POINTER(readerStateId, aod_reader, &readState);
312+
auto transitionTo = [&](TFReaderState nextState) {
313+
O2_SIGNPOST_EVENT_EMIT(aod_reader, readerStateId, "state transition",
314+
"%{public}s -> %{public}s (fileCounter %d, timeFrame %d)",
315+
stateName(readState), stateName(nextState), fcnt, ntf);
316+
readState = nextState;
317+
};
291318
size_t routeIndex = 0;
292319
auto reportTimeframe = [&didir, &fcnt, &ntf, &outputs, &TFNumberHeader, &TFFileNameHeader, reportTFN, reportTFFileName](header::DataHeader const& dh) {
293320
if (reportTFN) {
@@ -347,11 +374,11 @@ AlgorithmSpec AODJAlienReaderHelpers::rootFileReaderCallback(ConfigContext const
347374
while (readState != TFReaderState::TIMEFRAME_READ) {
348375
switch (readState) {
349376
case TFReaderState::READ_FIRST_TABLE:
350-
readState = tryReadTable(readState);
377+
transitionTo(tryReadTable(readState));
351378
break;
352379
case TFReaderState::READ_FIRST_TABLE_FROM_NEXT_FILE:
353380
case TFReaderState::READ_NEXT_TABLE:
354-
readState = tryReadTable(readState);
381+
transitionTo(tryReadTable(readState));
355382
if (readState == TFReaderState::TRY_NEXT_FILE) {
356383
// Once a file has been selected, every requested table must exist.
357384
auto concrete = DataSpecUtils::asConcreteDataMatcher(requestedTables[routeIndex].matcher);
@@ -371,7 +398,7 @@ AlgorithmSpec AODJAlienReaderHelpers::rootFileReaderCallback(ConfigContext const
371398
}
372399
ntf = 0;
373400
routeIndex = 0;
374-
readState = TFReaderState::READ_FIRST_TABLE_FROM_NEXT_FILE;
401+
transitionTo(TFReaderState::READ_FIRST_TABLE_FROM_NEXT_FILE);
375402
break;
376403
case TFReaderState::INVALID_TIMEFRAME:
377404
return;

0 commit comments

Comments
 (0)