Wed 23 Oct 2024 16:00 - 16:20 at IBR West - Performance Analysis and Optimisation 2 Chair(s): Matthew Flatt

Multi-Version eXecution (MVX) is a technique that deploys many equivalent versions of the same program — variants — as a single program, with direct applications in important fields such as: security, reliability, analysis, and availability. MVX can be seen as “online Record/Replay (RR)”, as RR captures a program’s execution as a log stored on disk that can later be replayed to observe the same execution. Unfortunately, current MVX techniques target programs written in C/C++ and do not support programs written in managed languages, which are the vast majority of code written nowadays.

This paper presents the design, implementation, and evaluation of Jmvx— a novel system for performing MVX and RR on programs written in managed languages. Jmvx supports programs written in Java by intercepting automatically identified non-deterministic methods, via a novel dynamic analysis technique, and ensuring that all variants execute the same methods and obtain the same data. Jmvx supports multi-threaded programs, by capturing synchronization operations in one variant, and ensuring all other variants follow the same ordering. We validated that Jmvx supports MVX and RR by applying it to a suite of benchmarks representative of programs written in Java. Internally, Jmvx uses a circular buffer located in shared memory between JVMs to enable fast communication between all variants, averaging 5%–47% performance overhead when performing MVX, 8%–25% when recording, and 13%–73% when replaying.

Wed 23 Oct

Displayed time zone: Pacific Time (US & Canada) change

16:00 - 17:40
Performance Analysis and Optimisation 2OOPSLA 2024 at IBR West
Chair(s): Matthew Flatt University of Utah
16:00
20m
Talk
Jmvx: Fast Multi-threaded Multi-Version eXecution and Record-Replay for Managed Languages
OOPSLA 2024
David Schwartz University of Illinois at Chicago, Ankith Kowshik University of Illinois Chicago, Luís Pina University of Illinois at Chicago
DOI
16:20
20m
Talk
libLISA: Instruction Discovery and Analysis on x86-64
OOPSLA 2024
Jos Craaijo Open Universiteit, Freek Verbeek Open Universiteit & Virginia Tech, Binoy Ravindran Virginia Tech
DOI
16:40
20m
Talk
Extending the C/C++ Memory Model with Inline Assembly
OOPSLA 2024
Paulo Emílio de Vilhena Imperial College London, Ori Lahav Tel Aviv University, Viktor Vafeiadis MPI-SWS, Azalea Raad Imperial College London
DOI
17:00
20m
Talk
TorchQL: A Programming Framework for Integrity Constraints in Machine Learning
OOPSLA 2024
Aaditya Naik University of Pennsylvania, Adam Stein University of Pennsylvania, Yinjun Wu University of Pennsylvania, Mayur Naik University of Pennsylvania, Eric Wong
DOI
17:20
20m
Talk
Verification of Neural Networks' Global RobustnessRemote
OOPSLA 2024
Anan Kabaha Technion, Israel Institute of Technology, Dana Drachsler Cohen Technion
DOI