Presentation is loading. Please wait.

Presentation is loading. Please wait.

1 MetaTM/TxLinux: Transactional Memory For An Operating System Hany E. Ramadan, Christopher J. Rossbach, Donald E. Porter and Owen S. Hofmann Presenter:

Similar presentations


Presentation on theme: "1 MetaTM/TxLinux: Transactional Memory For An Operating System Hany E. Ramadan, Christopher J. Rossbach, Donald E. Porter and Owen S. Hofmann Presenter:"— Presentation transcript:

1 1 MetaTM/TxLinux: Transactional Memory For An Operating System Hany E. Ramadan, Christopher J. Rossbach, Donald E. Porter and Owen S. Hofmann Presenter: Zhong Zhou CSE Department University of Connecticut

2 2 Outline Introduction & Background Architectural Model Interrupts and Transactions Stack memory and Transactions Modifying Linux to use HTM Evaluation Conclusions

3 3 Introduction What is Transaction? A finite sequence of machine instructions, executed by a single process, satisfying the following two conditions Serializability: transactions appear to execute serially, the steps of one transaction never appear to be interleaved with the steps of another. Atomicity: each transaction makes a sequence of changes to shared memory, when it completes, it either commits, make all changes visible to others, or it abort, causing its changes to be discarded.

4 4 Transactional memory A multiprocessor architecture for memory access synchronization as conventional mutual exclusion technique Basic instruction for manipulating transaction status Commit Abort Validate Basic primitive instruction for accessing memory Load transactional Load transactional-exclusive Store transactional

5 5 Why Transaction memory? Problem with Lock-based code Deadlock Convoying Priority inversion Transaction memory: Reduce programming complexity without sacrificing performance STM: software transaction memory HTM: hardware transaction memory

6 6 Main Contribution Examination of the architectural support necessary for an operation system to use HTM Creation of a transactional operating system Examination of the characteristics of transactions in TxLinux

7 7 Architecture Model Transaction semantics

8 8 Managing multiple transactions Stack based: independent transaction model XPUSH: Suspend the current transaction, saving its current state. XPOP: Restore the previously xpushed transaction. Allowing the suspended transaction to resume

9 9 Contention management Many content manage strategies have been implemented Polite, Karma, Eruption, et al. A new policy (size matters) Favors the transaction that has the large number of unique bytes read or written in its transaction working set

10 10 Backoff If conflict occurs between transactions, with high probability, it will happen again if immediate restart these transactions. Backoff mechanism is needed here Exponential backoff Linear backoff Random backoff

11 11 Interrupts and Transactions Interrupt handling background The top-half interrupt handler Disable all interrupt with equal and lower priorities Relatively short execution time, push as much work as possible to bottom-half The bottom-half interrupt handler

12 12 Observations for Interrupt handling Observations Transaction length: usually large Interrupt frequency: relative high Interrupt routing limitations: less flexible

13 13 Interrupt handling in TxLinux Start with XPUSH to suspend the currently running transaction Interrupt handler is allowed to start new, independent transaction Interrupt return path ends with an XPOP instruction

14 14 Stack memory and Transaction Stack memory is shared between thread in the Linux kernel On the X86 architecture, Linux thread share their kernel stack with interrupt handlers. The sharing of kernel stack address requires stack addresses to be part of transaction working sets to ensure isolation

15 15 Transactions that span activation frames Support independent Xbegin and Xend instruction. Xbegin and Xend can be called in different stack frame Example:

16 16 Live stack overwrite problem(1) One example:

17 17 Live stack overwrite problem(2) This problem stems from Calls to xbegin and xend occur in different stack frame The x86 trap architecture reuses the current stack on interrupt that does not change privilege level A transaction that is suspended can restart Solutions Change the interrupt handler stack to avoid the overwrite problem.

18 18 Transactional dead stack problem(1) One example:

19 19 Transactional dead stack problem(1) Solution Stack-based early release: During an active transaction, any time the stack pointer is incremented, if the new value of the stack pointer is on a different cache line from the old one, then, the processor releases the old cache lines from the transactional line

20 20 Modifying Linux to use HTM Spinlocks Lock->Xbegin, Unlock->Xend Atomic instructions Seqlocks Regions protected by seqlock loops are protected by a transaction in TxLinux Read-copy-update

21 21 Performance evaluation Simulation settings Split instruction\data L1 cache: 16KB, 4- way associative, 64-byte cache line Unified L2 cache: 4MB, 8-way associative, 64-byte cache line Main memory: 1GB IPC:1 instruction per cycle

22 22 Cache miss rates

23 23 System time

24 24 Contention management

25 25 Backoff policy

26 26 Conclusions HTM has the potential to greatly simplify the operating system synchronization while retaining a high degree of concurrency Examine several aspect of HTM implementation and policies Polka contention management policy is effective Backoff policy is important, both linear and exponential backoff work well

27 27 Thank You! Q & A?


Download ppt "1 MetaTM/TxLinux: Transactional Memory For An Operating System Hany E. Ramadan, Christopher J. Rossbach, Donald E. Porter and Owen S. Hofmann Presenter:"

Similar presentations


Ads by Google