Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

i#6643: Support drmemtrace analysis for #instr intervals #6644

Merged
merged 12 commits into from
Feb 12, 2024

Conversation

abhinav92003
Copy link
Contributor

@abhinav92003 abhinav92003 commented Feb 9, 2024

Adds support to produce trace interval results in the drmemtrace analyzer framework where the intervals are defined by a count of instrs. This is enabled using the new -interval_instr_count flag.

Unlike the timestamp (microseconds) based intervals where we support merging the per-shard intervals generated during parallel mode to create whole-trace intervals, for the #instr intervals we do not support merging. This is because merging #instr intervals is non-trivial. See added TODO comment for current ideas to achieve that in future. In the current version, when trace analysis completes, the print_interval_results() API is called separately for each shard with the interval state snapshots of that shard.

Extends the trace_interval_analysis_unit_tests to test the new feature. Also adds a basic_counts test that uses #instr intervals.

Modifies some existing logic to skip invoking the combine_interval_snapshots API in the serial mode. This way the user can avoid implementing the API if they're interested only in the serial mode.

Unnests some nested structs in trace_interval_analysis_unit_tests to shorten some struct identifiers frequently used to create expected test output objects. This helps fit some expected output entries in one line, making it easier to read.

Issue: #6643

Adds support to produce trace interval results in the drmemtrace analyzer
framework where the intervals are defined as count of instrs.

Unlike the timestamp (microseconds) based intervals where we support merging
the per-shard intervals generated during parallel mode to create whole-trace
intervals, for the #instr intervals we do not support merging. This is because
merging #instr intervals is non-trivial. See added XXX comment for details.

Extends the trace_interval_analysis_unit_tests to test the new feature. Also
adds a basic_counts test that uses #instr intervals.

Issue: #6643
@abhinav92003 abhinav92003 changed the title i#6643: Add support for drmemtrace analysis #instr trace intervals i#6643: Support drmemtrace analysis for #instr intervals Feb 9, 2024
clients/drcachesim/analysis_tool.h Outdated Show resolved Hide resolved
clients/drcachesim/analyzer.h Outdated Show resolved Hide resolved
clients/drcachesim/common/options.cpp Outdated Show resolved Hide resolved
clients/drcachesim/analyzer.cpp Outdated Show resolved Hide resolved
clients/drcachesim/analyzer.h Outdated Show resolved Hide resolved
Copy link
Contributor

@brettcoon brettcoon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!

@abhinav92003 abhinav92003 merged commit c31fbd3 into master Feb 12, 2024
16 checks passed
@abhinav92003 abhinav92003 deleted the i6020-instr-intervals branch February 12, 2024 20:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants