-
Notifications
You must be signed in to change notification settings - Fork 571
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
i#3995 multi-window: Add repeated tracing window feature
Adds new options -trace_for_instrs and -retrace_every_instrs to drcachesim for periodic trace bursts of an unmodified application. Implements them by adapting the existing drbbdup cases for switching between -trace_after_instrs and full tracing. Adds documentation on the new options. Adds instru_t::get_instr_count to count instuctions while tracing, to know when a tracing burst window is finished. Uses a local counter only added to the global every 10K instructions to avoid synchronization costs. Adds a new marker with the ordinal of the trace window. This marker is added to each buffer header. This, combined with a new check for the window having changed to ensure a buffer dump at the end of each block, limits the possible window drift to one block's worth of data. Augments raw2trace to avoid delaying a branch across a window change. Augments the view tool to mark window changes and delay timestamp output to group with the proper window (it is difficult to actually reorder timestamp and window entries). Augments the basic_counts tool to track and display per-window global statistics. Augments the invariant_checker tool to not complain on a control-flow gap across a window. Adds a test of this: but disables it for Windows temporarily due to more emulation interopability issues which #5390 covers. Adds a simple online test and a simple offline test that just confirm multiple windows are hit on simple_app. Adds an assembly test with precise values for the windows. Issue: #3995, #5390
- Loading branch information
1 parent
a14843b
commit 866de9e
Showing
26 changed files
with
881 additions
and
202 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
48 changes: 28 additions & 20 deletions
48
clients/drcachesim/tests/allasm-repstr-basic-counts.templatex
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,37 +1,45 @@ | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
---- <application exited with code 0> ---- | ||
Basic counts tool results: | ||
Total counts: | ||
19 total \(fetched\) instructions | ||
19 total unique \(fetched\) instructions | ||
/* One for each movs after the first one. */ | ||
95 total \(fetched\) instructions | ||
23 total unique \(fetched\) instructions | ||
4 total non-fetched instructions | ||
0 total prefetches | ||
5 total data loads | ||
5 total data stores | ||
0 total icache flushes | ||
0 total dcache flushes | ||
1 total threads | ||
.* total scheduling markers | ||
.* total transfer markers | ||
.* total function id markers | ||
.* total function return address markers | ||
.* total function argument markers | ||
.* total function return value markers | ||
.* total other markers | ||
Thread .* counts: | ||
19 \(fetched\) instructions | ||
19 unique \(fetched\) instructions | ||
24 total scheduling markers | ||
0 total transfer markers | ||
0 total function id markers | ||
0 total function return address markers | ||
0 total function argument markers | ||
0 total function return value markers | ||
3 total other markers | ||
Thread [0-9]* counts: | ||
95 \(fetched\) instructions | ||
23 unique \(fetched\) instructions | ||
4 non-fetched instructions | ||
0 prefetches | ||
5 data loads | ||
5 data stores | ||
0 icache flushes | ||
0 dcache flushes | ||
.* scheduling markers | ||
.* transfer markers | ||
.* function id markers | ||
.* function return address markers | ||
.* function argument markers | ||
.* function return value markers | ||
.* other markers | ||
24 scheduling markers | ||
0 transfer markers | ||
0 function id markers | ||
0 function return address markers | ||
0 function argument markers | ||
0 function return value markers | ||
3 other markers |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
48 changes: 28 additions & 20 deletions
48
clients/drcachesim/tests/offline-allasm-repstr-basic-counts.templatex
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,44 @@ | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Adios world! | ||
Basic counts tool results: | ||
Total counts: | ||
19 total \(fetched\) instructions | ||
19 total unique \(fetched\) instructions | ||
/* One for each movs after the first one. */ | ||
95 total \(fetched\) instructions | ||
23 total unique \(fetched\) instructions | ||
4 total non-fetched instructions | ||
0 total prefetches | ||
5 total data loads | ||
5 total data stores | ||
0 total icache flushes | ||
0 total dcache flushes | ||
1 total threads | ||
.* total scheduling markers | ||
.* total transfer markers | ||
.* total function id markers | ||
.* total function return address markers | ||
.* total function argument markers | ||
.* total function return value markers | ||
.* total other markers | ||
Thread .* counts: | ||
19 \(fetched\) instructions | ||
19 unique \(fetched\) instructions | ||
24 total scheduling markers | ||
0 total transfer markers | ||
0 total function id markers | ||
0 total function return address markers | ||
0 total function argument markers | ||
0 total function return value markers | ||
3 total other markers | ||
Thread [0-9]* counts: | ||
95 \(fetched\) instructions | ||
23 unique \(fetched\) instructions | ||
4 non-fetched instructions | ||
0 prefetches | ||
5 data loads | ||
5 data stores | ||
0 icache flushes | ||
0 dcache flushes | ||
.* scheduling markers | ||
.* transfer markers | ||
.* function id markers | ||
.* function return address markers | ||
.* function argument markers | ||
.* function return value markers | ||
.* other markers | ||
24 scheduling markers | ||
0 transfer markers | ||
0 function id markers | ||
0 function return address markers | ||
0 function argument markers | ||
0 function return value markers | ||
3 other markers |
Oops, something went wrong.