Tag Archives: transactional memory everywhere

Transaction Memory Everywhere: Forward-Progress Guarantees

Last year, I noted that hardware transactional memory (HTM) announcements lacked forward-progress guarantees. As noted in that posting: Until HTM implementations provide some sort of forward-progress guarantee, HTM will be limited by its fallback code sequences. For example, if the … Continue reading

Posted in Uncategorized | Tagged | Comments Off on Transaction Memory Everywhere: Forward-Progress Guarantees

Transactional Memory Everywhere: HTM and Cache Geometry

The previous post described some potential pitfalls in blindly applying hardware lock elision to legacy software. This post looks instead at how changes in CPU cache geometry have increased hardware transactional memory’s (HTM’s) cache footprint, at least from a theoretical … Continue reading

Posted in Uncategorized | Tagged , | 3 Comments

Transactional Memory Everywhere: Hardware Transactional Lock Elision

My earlier posting on hardware transactional memory (http://paulmck.livejournal.com/31853.html) brought an unusual amount of private email, especially on my discussion of the hazards of eliding empty critical sections (http://kernel.org/pub/linux/kernel/people/paulmck/Answers/TransactionalMemoryEverywhere/WhyEmptyLock.html). Several people made the interesting claim that any correct code involving empty … Continue reading

Posted in Uncategorized | Tagged , | Comments Off on Transactional Memory Everywhere: Hardware Transactional Lock Elision

Transactional Memory Everywhere: 2012 Update for HTM

In a recent post, I called out some of the past year’s activity in the area of transactional memory (TM). This post takes a closer look at hardware transactional memory (HTM), with an eye to where it might fit into … Continue reading

Posted in Uncategorized | Tagged | 11 Comments

Transactional Memory Everywhere: 2012 Update

The past year has been a busy one for transactional memory (TM). IBM’s Blue Gene/Q and Intel’s Haswell TSX have joined Sun Rock and Azul’s Vega 2 in offering hardware transactional memory (HTM). All of these implementations seem to be … Continue reading

Posted in Uncategorized | Tagged , | 5 Comments

Stupid RCU Tricks: Can Transactional Memory Subsume RCU?

In theory, transactional memory (TM) can emulate RCU read-side critical sections quite straightforwardly: Change all occurrences of rcu_read_lock() into your favorite start-of-transaction primitive. Change all occurrences of rcu_read_unlock() into your favorite end-of-transaction primitive. Replace all rcu_dereference() primitives with their arguments. … Continue reading

Posted in Uncategorized | Tagged , | Comments Off on Stupid RCU Tricks: Can Transactional Memory Subsume RCU?

Transactional Memory Everywhere: Comparison to Locking

A comparison of transactional memory (TM) and locking by Maged Michael, Josh Triplett, Jonathan Walpole, and myself recently appeared in ACM Operating System Review. This is a journal version of an earlier workshop paper in PLOS 2007. This paper attempts … Continue reading

Posted in Uncategorized | Tagged , | 22 Comments

Transactional Memory Everywhere: Follow-Up I

One of the big challenges for any synchronization mechanism is synchronization overhead. The larger the synchronization overhead, the greater the granularity of parallelism required to attain high efficiency. Given that software transactional memory has significant synchronization overhead, one natural reaction … Continue reading

Posted in Uncategorized | Tagged , | Comments Off on Transactional Memory Everywhere: Follow-Up I

Transactional Memory Everywhere: Summary

If you actually read my full set of Transactional Memory Everywhere blog postings, I offer my enthusiastic congratulations and heartfelt condolences. In short, although TM offers much promise for small changes to memory-only data structures, there are a number of … Continue reading

Posted in Uncategorized | Tagged , | Comments Off on Transactional Memory Everywhere: Summary

Transactional Memory Everywhere: RCU

Because read-copy update (RCU) finds its main use in the Linux kernel, one might be forgiven for assuming that there had been no academic work on combining RCU and TM. However, the TxLinux group from the University of Texas at … Continue reading

Posted in Uncategorized | Tagged , | Comments Off on Transactional Memory Everywhere: RCU