-
Notifications
You must be signed in to change notification settings - Fork 571
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#3995 multi-window: Add repeated tracing window feature #5402
Merged
Conversation
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
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
…st missing marker after timestamp; disable invar test for this PR b/c even on linux it sometimes hits the #5390 missing jump bug
abhinav92003
approved these changes
Mar 9, 2022
Thanks for taking the time to go through the large patch carefully! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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