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#5843 scheduler: Fix record-replay ordinal mismatches #6236

Merged
merged 6 commits into from
Aug 3, 2023

Conversation

derekbruening
Copy link
Contributor

@derekbruening derekbruening commented Aug 1, 2023

Adds read-ahead to timestamps when replaying, to match record ordinals and not just instruction ordinals at start and switch points when recording.

Adds use of the just-read timestamp when skipping in the reader, to avoid losing the timestamp when the scheduler has read ahead.

Adds recording of the ordinals at switch points in the unit tests for comprehensive testing of switch points instead of just testing thread sequences.

Fixes several tests which were passing incorrect flags.

Issue: #5843

Fixes a problem with the implementation of context switching on a
blocking syscall: it was being done immediately upon seeing the
maybe-blocking marker, which is right after the syscall instruction.
This resulted in recording the syscall instruction ordinal as the
switch point, when that ordinal is supposed to be exclusive and so
needs to be right before the subsequent instruction.

Adds a test that ensures we don't switch until after all the markers
after a blocking syscall.

Issue: #5843
Adds read-ahead to timestamps when replaying, to match ordinals when recording.

Adds use of the just-read timestamp when skipping in the reader, to
avoid losing the timestamp when the scheduler has read ahed.

Adds recording of the ordinals at switch points in the unit tests for
comprehensive testing of switch points instead of just testing thread
sequences.

Fixes several tests which were passing incorrect flags.

Issue: #5843
@derekbruening
Copy link
Contributor Author

ubuntu22 failure is api.rseq #6185

clients/drcachesim/scheduler/scheduler.cpp Show resolved Hide resolved
clients/drcachesim/scheduler/scheduler.cpp Outdated Show resolved Hide resolved
clients/drcachesim/reader/reader.cpp Show resolved Hide resolved
clients/drcachesim/scheduler/scheduler.cpp Outdated Show resolved Hide resolved
clients/drcachesim/scheduler/scheduler.cpp Show resolved Hide resolved
Base automatically changed from i5843-sys-switch to master August 2, 2023 22:40
@derekbruening derekbruening merged commit 7dd114e into master Aug 3, 2023
@derekbruening derekbruening deleted the i5843-replay-ordinals branch August 3, 2023 00:00
kuhanov added a commit that referenced this pull request Aug 8, 2023
…om/DynamoRIO/dynamorio into aarch64_instruction_categorization

* 'aarch64_instruction_categorization' of https://github.com/DynamoRIO/dynamorio:
  i#5843 scheduler: Fix record-replay ordinal mismatches (#6236)
  i#5843 scheduler: Delay switch to instr after blocking syscall (#6235)
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