-
Notifications
You must be signed in to change notification settings - Fork 562
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
drcachesim.invariants test failing sometimes on win32 #5636
Comments
This has started showing up on 64-bit Windows too. All the recent changes are to offline tracing, not online. This is happening more and more frequently so I'm going to try to repro and figure it out. |
I did repro and it looks like this interleaved:
Looks like it's the part of the check that tries to exclude the online bug of marking the 1st non-fetched after a context switch as fetched: invariant_checker should have printed out the timestamp and cpuid markers: |
Two identical timestamps?
I had assumed that would never happen. A very small buffer |
PR #5633 added code to skip the duplicate timestamps at the top of each chunk: but its logic assumed there would never be two legitimate timestamps with identical values. That does happen, in particular in our online-drcachesim tests on Windows. This resulted in the invariant_checker not seeing some timestamp entries, causing its exception for non-fetched instrs across thread switches to not apply and resulting in invariant error reports. We fix this by skipping the first timestamp in each chunk by instruction count instead. We'll want the insruction and chunk counts for #5538 and I was about to add those fields in any case. Fixes #5636
PR #5633 added code to skip the duplicate timestamps at the top of each chunk: but its logic assumed there would never be two legitimate timestamps with identical values. That does happen, in particular in our online-drcachesim tests on Windows. This resulted in the invariant_checker not seeing some timestamp entries, causing its exception for non-fetched instrs across thread switches to not apply and resulting in invariant error reports. We fix this by skipping the first timestamp in each chunk by instruction count instead. We'll want the insruction and chunk counts for #5538 and I was about to add those fields in any case. Fixes #5636
PR #5633 added code to skip the duplicate timestamps at the top of each chunk: but its logic assumed there would never be two legitimate timestamps with identical values. That does happen, in particular in our online-drcachesim tests on Windows. This resulted in the invariant_checker not seeing some timestamp entries, causing its exception for non-fetched instrs across thread switches to not apply and resulting in invariant error reports. We fix this by skipping the first timestamp in each chunk by instruction count instead. We'll want the insruction and chunk counts for #5538 and I was about to add those fields in any case. Fixes #5636
The drcachesim.invariants test failed in PR #5633 on 32-bit Windows with this error:
On a re-run it went away.
The text was updated successfully, but these errors were encountered: