Commit on overflow
2014
Current commercial CPUs have hardware support for speculative lock elision (SLE). SLE tries to elide the lock by speculatively executing lock protected critical section. If the speculation fails, SLE acquires the lock and re-executes the critical section non-speculatively.
Latest Intel CPUs implement SLE and hardware transactional memory (HTM) where SLE uses HTM transactions to speculatively execute critical sections. HTM only supports bounded size transactions where non-conflicting transactions execute until they overflow and abort. Bounded sized transactions impose the limit on the size of SLE protected critical sections. Even worse, the current SLE implementation execute large non-conflicting critical sections twice; first time, speculatively in a
transaction, and second time, non-speculatively by acquiring the lock at the beginning of the critical section. Ideally, SLE should execute all non-conflicting critical sections exactly once.
This paper introduces a \emph{commit on overflow} (COO) transaction abort policy which -- instead of aborting -- commits overflowed transaction and continues executing it. We show the usefulness of COO while executing large SLE protected critical sections. Also, we show that our COO implementation preserves atomicity of SLE protected critical sections.
Keywords:
- Correction
- Source
- Cite
- Save
- Machine Reading By IdeaReader
0
References
0
Citations
NaN
KQI