4 ms·
The upstream issue with discussion about Arm support is https://github.com/mozilla/rr/issues/1373 https://github.com/mozilla/rr/issues/1373 -- the underlying pr
by pm215 8y ago
The upstream issue with discussion about Arm support is https://github.com/mozilla/rr/issues/1373 https://github.com/mozilla/rr/issues/1373 -- the underlying problem is that rr's design assumes that if you execute N instructions you'll always deterministically end up in the same place. In architectures which implement atomics via a load-linked/store-conditional loop (including Alpha, Arm, MIPS, PPC,...) this isn't true, because differences at the OS level (eg timing of other interrupts or process scheduling) could cause an ll/sc loop to loop round more often. It's not clear how this could be addressed, because it's pretty deeply baked into rr's design.
- roca 8y agoCPU support for trapping on a failed LL/SC would suffice.
- pm215 8y agoDo you have a sketch of how that would work? It seems plausible but I haven't thought through the details. Issue 1373 suggests a perf counter of failed-SC events and looking at "branches taken - failed_SC", which I'm definitely sceptical would be reliable.
- roca 8y agoSure, I just added it here: https://github.com/mozilla/rr/issues/1373#issuecomment-436270586 https://github.com/mozilla/rr/issues/1373#issuecomment-43627...