-
Notifications
You must be signed in to change notification settings - Fork 575
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#7216: noise generator basic structure #7283
Open
edeiana
wants to merge
52
commits into
master
Choose a base branch
from
i7216-noise-generator-initial
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
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
Added -noise_generator_num_records to scheduler options info.
edeiana
commented
Feb 21, 2025
edeiana
commented
Feb 21, 2025
edeiana
commented
Feb 21, 2025
clients/drcachesim/tests/schedule_stats_noise_generator.templatex
Outdated
Show resolved
Hide resolved
that satisfies the scheduler requirements (i.e., noise records must be wrapped between tid, pid, and thread exit). This improved code utilization between noise_generator_t and mock_noise_generator_t in the unit tests.
in the form of an input_reader_t, for max flexibility.
we oonly care about threads anyway.
record in the noise generator.
derekbruening
approved these changes
Mar 10, 2025
end-to-end test to check for the additional TRACE_TYPE_READ records produced by the noise generator.
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.
Scaffolding for the noise generator.
Adds
noise_generator_t
as a subclass of the iteratorreader_t
.Currently
noise_generator_t
only producesTRACE_TYPE_READ
recordswith address
0xdeadbeef
(easier to spot in tools' output). These records arepreceded by
TRACE_TYPE_THREAD
,TRACE_TYPE_PID
,TRACE_MARKER_TYPE_TIMESTAMP
and followed byTRACE_TYPE_THREAD_EXIT
as this is the sequence of records the scheduler expects. We assign a large value to
TRACE_MARKER_TYPE_TIMESTAMP because the scheduler will overwrite it anyway
in dynamic mode. We support mixing noise with real inputs only in dynamic scheduling
mode, we don't support mixing with other inputs in non-dynamic modes.
As of now, the user can add a single-process, single-thread noise generator workload to
the scheduler's input workloads through the
-add_noise_generator
flagin the drmemtrace framework. Adding a
noise_generator_t
to the scheduler's inputworkloads is done by the factory class
noise_generator_factory_t
through itscreate_noise_generator()
method, which currently returns a noise generator as aninput_reader_t
that can then be added to the scheduler'sinput_workload_t
vector.As of now, there are three knobs the user can control in the noise generator:
PID, TID, and number of noise records to generate. These knobs are encapsulated
in the
noise_generator_info_t
struct. For now they are pre-set with default values:PID = 1, TID = 1, number of noise records to generate = 1000. We plan to have better
default values in the future (perhaps through a lightweight analysis of the target trace(s)
we want to add noise to) and options for the user to directly change these values.
Adds a unit test in scheduler_unit_tests.cpp and an end-to-end test leveraging
the
schedule_stats
tool.Issue: #7216