DynamoRIO / DynamoRIO/dynamorio
Avoid new minor releases when introducing new files in the trace directory
- Dominant language
- C
- Stars
- 3.2k
- Forks
- 629
- Avg merge
- 2d 15h
- Merged PRs (30d)
- 31
Description
The scheduler looks for specific files in the trace directory when selecting the right reader to open them and returns an error when it sees a file that it doesn't recognize (see: `open_readers()` and `get_reader()` in `clients/drcachesim/scheduler/scheduler_impl.cpp`).
This means that every time we introduce a new file in the trace directory, we need to add it to the scheduler's ignore list and bump DynamoRIO's minor version, otherwise all analyzers will report an error on traces that have a new, unrecognized file.
This has already happened in Public Traces V2 (xref #6662) when we introduced `v2p.textproto` and is going to happen again with the for-human-consumption-only `info.textproto` file (which currently contains information on peak live cores count and workload phases).
We want to avoid having to bump DynamoRIO's version in the future just because we introduce new files in the trace directory that the scheduler doesn't recognize.
Proposed approaches are:
- Use an allowlist of known compression suffixes;
- Look for "drmemtrace" in the file name and only consider those files;
- Add a new, optional directory that will contain auxiliary trace files.
The last approach seems the cleanest to me.
We could have a directory: `aux` within the trace dir that contains auxiliary trace files (i.e., anything extra that is not necessary to run an analyzer, like human-readable files).
Contributor guide
Assessment
This issue has not been assessed yet.