Transcript
Page 1: Thread-Safe Dynamic Binary Translation using Transactional Memory

Thread-Safe Dynamic Binary Translation using Transactional Memory

JaeWoong Chung, Michael Dalton, Harri Kannan and Christos Kozyrakis (HPCA 2008)

LBA reading group 02/07/2008

by Evangelos Vlachos

Page 2: Thread-Safe Dynamic Binary Translation using Transactional Memory

Introduction

Wide spectrum of DBT applicability Debugging, Cross-ISA binary compatibility, etc.

Poor support for multithreaded applications Data races on metadata

Solutions given so far Not supported Locking Serialization of application’s threads

Page 3: Thread-Safe Dynamic Binary Translation using Transactional Memory

Introduction

Solution proposed DBT with transactional memory to eliminate

metadata races Implemented a DBT framework that runs DIFT on

multithreaded applications

Page 4: Thread-Safe Dynamic Binary Translation using Transactional Memory

Overview

DBT & DIFT overview DBT & TM = Thread-Safe DBT Optimazations for DBT Transactions DIFT prototype Evaluation Conclusion

Page 5: Thread-Safe Dynamic Binary Translation using Transactional Memory

Metadata RacesFalse negative False positive

• Introduction of metadata breaks atomicity of RMW instructions

• Attackers may introduce race conditions to exploit memory safety vulnerabilities

Page 6: Thread-Safe Dynamic Binary Translation using Transactional Memory

DBT + TM

Different flavors of TM STM, Hybrid STM, HTM

Many issues to consider and many trade-offs

…to be continued

Page 7: Thread-Safe Dynamic Binary Translation using Transactional Memory

DBT + TM

Software & Hybrid TM High overhead – Barriers required for every access

Transaction Length Basic block boundaries? Indirect branches?

Page 8: Thread-Safe Dynamic Binary Translation using Transactional Memory

DBT + TM

User level transactions Requires nesting of transactions Avoid partial overlap of transactions

User level sync If span multiple

blocks problem Solution:

Detect Re-instrument Re-optimize for basic

blocks

Page 9: Thread-Safe Dynamic Binary Translation using Transactional Memory

DBT + TM optimizations

Length & cost of starting a transaction DBT trace granularity

Limited length Cost only at start & end of the trace

Dynamic transaction merging At Tx_End check if work amortizes cost Some additional cost when merging Longer transactions

Page 10: Thread-Safe Dynamic Binary Translation using Transactional Memory

DBT + TM optimizations

Limit the use of barriers Conflict detection & Data Versioning Categorize accesses

During trace generation Dynamically

Page 11: Thread-Safe Dynamic Binary Translation using Transactional Memory

DIFT prototype

Software TM system Based on Pin 210 locks word version encoded also Software checkpoint provided by Pin RD_barrier(), WR_barrier(), WRlocal_barrier() Transaction length = DBT trace

All other systems emulated!!! ☺

Page 12: Thread-Safe Dynamic Binary Translation using Transactional Memory

Evaluation

Compared to the same DIFT tool without transactions (not thread-safe)

Page 13: Thread-Safe Dynamic Binary Translation using Transactional Memory

Evaluation

Effect of Transaction Length Additional overhead to base case TM system

Page 14: Thread-Safe Dynamic Binary Translation using Transactional Memory

Evaluation

Effect of access categorization

Page 15: Thread-Safe Dynamic Binary Translation using Transactional Memory

Evaluation

Effect of Hardware Support for Transactions

Page 16: Thread-Safe Dynamic Binary Translation using Transactional Memory

Conclusion

First system to truly support parallel monitoring

Based on TM to resolve metadata races Based on DBT High Overhead due to DBT


Recommended