Article: Haswell TM Alternatives

Article: Haswell Transactional Memory Alternatives
By: Linus Torvalds (, August 22, 2012 9:16 am
Room: Moderated Discussions
anon ( on August 22, 2012 9:46 am wrote:
> If only using the MOB/ROB, then the size of the
> TM working sets will be rather limited, basically a slightly bigger version of
> the LL/SC instruction sequence in RISCs. Wouldn't be that useful.

Oh, it can be useful. Much more so than LL/SC, because it would work with arbitrary compiled code, and it wouldn't be limited to a single reservation (which is what LL/SC tends to do), and not tied to a "smallest common denominator" transaction size like LL/SC.

So personally, I'd like to see the "small transactions only" model.

However, in order for that model to work well, you have to have really cheap failure modes, because you potentially fail much more often.

This is one of the reasons why I was arguing so strongly at one point (both here and to some Intel engineers) for the transaction model to use "success prediction" (possibly actually re-using the branch prediction hardware, but possibly with a separate predictor). Because part of "really cheap failure modes" is to not even bother trying if it's unlikely to work.

(Part of "really cheap failure modes" is also to not have to do prediction in software. All the hardware engineers seem to think that you can do prediction in software, but that's a total and utter disaster for so many reasons that it's not even funny).

And in many ways, small transactions are much easier to predict. Some of them you can predict by just looking at the instruction stream, without any dynamic prediction table at all. The simplest prediction model would involve just the CPU asking itself "is the transaction end instruction in my instruction queue" when it starts the begin-transaction instruction, and saying "No, screw that" if not.

And nice small transactions are where transactions really help the most. Lock ping pong for some big expensive thing is not cheap, but ping-ponging some hot lock just because you do some list addition to a hot list - that's relatively really expensive.

< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Article: Haswell TM AlternativesDavid Kanter08/21/12 09:17 PM
  Article: Haswell TM AlternativesHåkan Winbom08/21/12 11:52 PM
    Article: Haswell TM AlternativesDavid Kanter08/22/12 01:06 AM
  Article: Haswell TM Alternativesanon08/22/12 08:46 AM
    Article: Haswell TM AlternativesLinus Torvalds08/22/12 09:16 AM
      Article: Haswell TM AlternativesDoug S08/24/12 08:34 AM
    AMD's ASF even more limitedPaul A. Clayton08/22/12 09:20 AM
      AMD's ASF even more limitedLinus Torvalds08/22/12 09:41 AM
        Compiler use of ll/sc?Paul A. Clayton08/28/12 09:28 AM
          Compiler use of ll/sc?Linus Torvalds09/08/12 12:58 PM
            Lock recognition?Paul A. Clayton09/10/12 01:17 PM
              Sorry, I was confusedPaul A. Clayton09/13/12 10:56 AM
  Filter to detect store conflictsPaul A. Clayton08/22/12 09:19 AM
  Article: Haswell TM Alternativesbakaneko08/22/12 02:02 PM
    Article: Haswell TM AlternativesDavid Kanter08/22/12 02:45 PM
      Article: Haswell TM Alternativesbakaneko08/22/12 09:56 PM
  Cache line granularity?Paul A. Clayton08/28/12 09:28 AM
    Cache line granularity?David Kanter08/31/12 08:13 AM
      A looser definition might have advantagesPaul A. Clayton09/01/12 06:29 AM
    Cache line granularity?rwessel08/31/12 07:54 PM
      Alpha load locked granularityPaul A. Clayton09/01/12 06:29 AM
        Alpha load locked granularityanon09/02/12 05:23 PM
          Alpha pages groupsPaul A. Clayton09/03/12 04:16 AM
  An alternative implementationMaynard Handley11/20/12 09:52 PM
    An alternative implementationbakaneko11/21/12 05:52 AM
      Guarding unread values?Paul A. Clayton11/21/12 08:39 AM
        Guarding unread values?bakaneko11/21/12 11:25 AM
    TM granularity and versioningPaul A. Clayton11/21/12 08:27 AM
      TM granularity and versioningMaynard Handley11/21/12 10:52 AM
        Indeed, TM (and coherence) has devilish details (NT)Paul A. Clayton11/21/12 10:56 AM
Reply to this Topic
Body: No Text
How do you spell green?