DynamoRIO / dynamorio

Dynamic Instrumentation Tool Platform
Other
2.57k stars 552 forks source link

i#6675: Collapse consecutive idle replay entries #6673

Closed derekbruening closed 4 months ago

derekbruening commented 4 months ago

Saves substantial file space in the drmemtrace scheduler's record-replay file when cores are idling by combining consecutive idle entries.

Adds checks to all unit tests which create replay files; this requires access to the non-public record format, done via a helper class.

Also tested on several real applications: for one the record file drops from 34MB to 4K, matching the size of the as-traced schedule files. Even tiny applications like threadsig show clear reductions. Consecutive idle entries were ballooning these files. Large applications had multi-GB files; with this fix they are orders of magnitude smaller.

Issue: #6471, #6675 Fixes: #6675