-
Notifications
You must be signed in to change notification settings - Fork 569
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
Add drmemtrace schedule analysis tool #6426
Labels
Comments
derekbruening
added a commit
that referenced
this issue
Nov 10, 2023
Adds a new analysis tool "schedule_stats" which computes characteristics of a core-sharded schedule. This is meant to help in understanding and studying the effects of varying the scheduler parameters. This initial version counts instructions, blocking and all syscalls, voluntary and direct switches, and direct requests, and computes derived statistics CSPKI, I/CS, %voluntary, and %direct switches. Failed direct requests can be inferred. The tool also records a string of letters representing input threads to help visualize the thread interleaving on each core. The number of instructions per leter is controlled by a new parameter -print_every. This string visualization has its limits as more than 26 inputs will wrap around, but this approach has been useful in our unit tests and other small runs. Adds a regression test which runs the checked-in threadsig trace. Issue: #6426
derekbruening
added a commit
that referenced
this issue
Nov 11, 2023
Adds a new analysis tool "schedule_stats" which computes characteristics of a core-sharded schedule. This is meant to help in understanding and studying the effects of varying the scheduler parameters. This initial version counts instructions, blocking and all syscalls, voluntary and direct switches, and direct requests, and computes derived statistics CSPKI, I/CS, %voluntary, and %direct switches. Failed direct requests can be inferred. The tool also records a string of letters representing input threads to help visualize the thread interleaving on each core. The number of instructions per leter is controlled by a new parameter -schedule_stats_print_every. This string visualization has its limits as more than 26 inputs will wrap around, but this approach has been useful in our unit tests and other small runs. Adds a regression test which runs the checked-in threadsig trace. Issue: #6426
derekbruening
added a commit
that referenced
this issue
Apr 25, 2024
Adds the list of threads per cpu to the schedule_stats output. Updates the schedule_stats tests to confirm some tids are printed. Issue: #6426
derekbruening
added a commit
that referenced
this issue
Apr 25, 2024
Adds the list of threads per cpu to the schedule_stats output. Updates the schedule_stats tests to confirm some tids are printed. Issue: #6426
derekbruening
added a commit
that referenced
this issue
May 9, 2024
Adds a very simple histogram with fixed bin sizes recording the distribution of instructions per context switch in the schedule_stats tool. Updates two tests to confirm the histogram is produced. This feature is structured to allow replacing this simple histogram with a more sophisticated version in subclasses. Issue: #6426
derekbruening
added a commit
that referenced
this issue
May 14, 2024
Adds a very simple histogram with fixed bin sizes recording the distribution of instructions per context switch in the schedule_stats tool. Updates two tests to confirm the histogram is produced. This feature is structured to allow replacing this simple histogram with a more sophisticated version in subclasses. Issue: #6426
philramsey-arm
pushed a commit
that referenced
this issue
May 14, 2024
Adds a very simple histogram with fixed bin sizes recording the distribution of instructions per context switch in the schedule_stats tool. Updates two tests to confirm the histogram is produced. This feature is structured to allow replacing this simple histogram with a more sophisticated version in subclasses. Issue: #6426
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
#5843 covered creating a drmemtrace scheduler supporting a variety of schedules.
#5694 hooked the scheduler up to the analysis tool framework.
This issue covers creating an analysis tool that computes statistics about a schedule and provides some rough visualization of the interleavings. The sched_launcher tool was a step in that direction, but an analysis tool is a better solution as it more easily fits into and combines with other tools and existing framework adaptations.
Here is my prototype, where I cranked up the quantum so we have no preempts as a test to see 100% voluntary switches (this counts a thread exit as a voluntary switch):
The text was updated successfully, but these errors were encountered: