Article: Haswell TM Alternatives

Article: Haswell Transactional Memory Alternatives
By: Linus Torvalds (torvalds.delete@this.linux-foundation.org), August 22, 2012 10:16 am
Room: Moderated Discussions
anon (anon.delete@this.anon.com) 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.

Linus
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Article: Haswell TM AlternativesDavid Kanter2012/08/21 10:17 PM
  Article: Haswell TM AlternativesHÃ¥kan Winbom2012/08/22 12:52 AM
    Article: Haswell TM AlternativesDavid Kanter2012/08/22 02:06 AM
  Article: Haswell TM Alternativesanon2012/08/22 09:46 AM
    Article: Haswell TM AlternativesLinus Torvalds2012/08/22 10:16 AM
      Article: Haswell TM AlternativesDoug S2012/08/24 09:34 AM
    AMD's ASF even more limitedPaul A. Clayton2012/08/22 10:20 AM
      AMD's ASF even more limitedLinus Torvalds2012/08/22 10:41 AM
        Compiler use of ll/sc?Paul A. Clayton2012/08/28 10:28 AM
          Compiler use of ll/sc?Linus Torvalds2012/09/08 01:58 PM
            Lock recognition?Paul A. Clayton2012/09/10 02:17 PM
              Sorry, I was confusedPaul A. Clayton2012/09/13 11:56 AM
  Filter to detect store conflictsPaul A. Clayton2012/08/22 10:19 AM
  Article: Haswell TM Alternativesbakaneko2012/08/22 03:02 PM
    Article: Haswell TM AlternativesDavid Kanter2012/08/22 03:45 PM
      Article: Haswell TM Alternativesbakaneko2012/08/22 10:56 PM
  Cache line granularity?Paul A. Clayton2012/08/28 10:28 AM
    Cache line granularity?David Kanter2012/08/31 09:13 AM
      A looser definition might have advantagesPaul A. Clayton2012/09/01 07:29 AM
    Cache line granularity?rwessel2012/08/31 08:54 PM
      Alpha load locked granularityPaul A. Clayton2012/09/01 07:29 AM
        Alpha load locked granularityanon2012/09/02 06:23 PM
          Alpha pages groupsPaul A. Clayton2012/09/03 05:16 AM
  An alternative implementationMaynard Handley2012/11/20 10:52 PM
    An alternative implementationbakaneko2012/11/21 06:52 AM
      Guarding unread values?Paul A. Clayton2012/11/21 09:39 AM
        Guarding unread values?bakaneko2012/11/21 12:25 PM
    TM granularity and versioningPaul A. Clayton2012/11/21 09:27 AM
      TM granularity and versioningMaynard Handley2012/11/21 11:52 AM
        Indeed, TM (and coherence) has devilish details (NT)Paul A. Clayton2012/11/21 11:56 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell green?