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#6938 sched migrate: Add observed migrations to schedule stats #7057

Merged
merged 6 commits into from
Oct 28, 2024

Conversation

derekbruening
Copy link
Contributor

While the schedule_stats tool already reports the migration count from the scheduler, that is only non-zero for a dynamic schedule, resulting in 0 for core-sharded-on-disk traces. We add "observed migrations" where schedule_stats looks for migrations on its own. This requires a global lock on each context switch, but experimental results show that this does not seem to cause noticeable overhead.

Adds some testing.

Issue: #6938

While the schedule_stats tool already reports the migration count from
the scheduler, that is only non-zero for a dynamic schedule, resulting
in 0 for core-sharded-on-disk traces.  We add "observed migrations"
where schedule_stats looks for migrations on its own.  This requires a
global lock on each context switch, but experimental results show that
this does not seem to cause noticeable overhead.

Adds some testing.

Issue: #6938
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.

A couple lines I have questions about.

clients/drcachesim/tools/schedule_stats.h Show resolved Hide resolved
clients/drcachesim/tools/schedule_stats.cpp Outdated Show resolved Hide resolved
@derekbruening derekbruening merged commit d689927 into master Oct 28, 2024
17 checks passed
@derekbruening derekbruening deleted the i6938-observed-migrations branch October 28, 2024 18:19
derekbruening added a commit that referenced this pull request Oct 28, 2024
Fixes an assert on the new observed_migrations stat added to
schedule_stats in PR #7057.  These observed_migrations are counted on
the destination core, while the scheduler reports migrations away from
a source core: so they can differ, causing the assert to fire.  Fixed
by moving it to only check the aggregated stats across all cores.

Tested on the internal trace where the assert fired before.

Issue: #6938
derekbruening added a commit that referenced this pull request Oct 29, 2024
Fixes an assert on the new observed_migrations stat added to
schedule_stats in PR #7057. These observed_migrations are counted on the
destination core, while the scheduler reports migrations away from a
source core: so they can differ, causing the assert to fire. Fixed by
moving it to only check the aggregated stats across all cores.

Tested on the internal trace where the assert fired before.

Issue: #6938
derekbruening added a commit that referenced this pull request Oct 29, 2024
schedule_stats_t::get_total_counts() was not including
scheduler-provided stats, as it was doing its own simple aggregation
instead of calling aggregate_results().  We fix that here.  That then
triggers the newly added assert from PR #7057 which checks for the
scheduler-provided value being exactly equal meaning there is no data
available.  It fires on the schedule_stats_test, which uses a mock
stream which returns -1 for such a stat, so we end up with a negative
value.  We update the assert for that condition.

Issue: #6938
derekbruening added a commit that referenced this pull request Oct 29, 2024
…7060)

schedule_stats_t::get_total_counts() was not including
scheduler-provided stats, as it was doing its own simple aggregation
instead of calling aggregate_results(). We fix that here. That then
triggers the newly added assert from PR #7057 which checks for the
scheduler-provided value being exactly equal meaning there is no data
available. It fires on the schedule_stats_test, which uses a mock stream
which returns -1 for such a stat, so we end up with a negative value. We
update the assert for that condition.

Issue: #6938
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