Intel RTM and HLE is a success (is it?)

By: Linus Torvalds (torvalds.delete@this.linux-foundation.org), April 1, 2021 9:00 am
Room: Moderated Discussions
@never_released (never_released.delete@this.gmx.tw) on April 1, 2021 8:21 am wrote:
>
> That however doesn't change the fact that you sometimes don't want to start the transaction
> in the first place, which will have to be handled in software.

This is the big thing.

If you use TM to do general-purpose lock elision, you absolutely will get cases where the transaction will basically always fail because of transaction capacity issues (or possibly due to the locked region doing something that cannot be transactional, like IO).

Now, part of that can be handled by the compiler being aware of all the transaction limits, but that kind of static knowledge is not simply not sufficient for very fundamental reasons. One of those reasons being dynamic behavior (think conditional branches), another being simply that the limits will depend on the microarchitectural details.

End result: static "prediction" by the compiler on whether a transaction will succeed or not is pure and utter garbage. It's not useful for a serious transactional memory model, unless you are ok with limiting the transaction size to some architectural minimum guarantee (which means that it's not going to be all that commonly useful, and certainly not the promised "elide locks in the common case").

So if the static prediction by the compiler isn't good enough, you have three choices:

(a) don't predict at all (outside of the truly obvious case where the compiler can see "this has no chance at all"), and take the failure case every time (or at least quite often), go to the slow case

(b) add dynamic prediction in software

(c) do the dynamic prediction in hardware.

And my claim is that (a) is not useful - it's going to be slower than not having TM in the first place, and that (b) is much too expensive unless your load is very controlled and you can limit it some way. Which leaves you (c), and nobody has ever done it correctly, and as mentioned there is absolutely zero sign that ARM is doing it either.

End result: the ARM implementation is the same broken stuff we have seen before that has already been shown to not be good enough.

And yes, I'm disappointed.

Side note: I've seen this before at Transmeta. It was a different kind of transactional memory (not for threading, but for speculation), but it had all the same issues. There we used another approach: predict in the JIT, and if it's wrong, just re-JIT the code.

That JIT approach does work, but it only works if the high-performance code you care about is JIT'ed, and that's not generally the case for something like an ARM server chip.

Linus
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Armv9 officially announcedJon Masters2021/03/30 10:41 AM
  Armv9 officially announcedGabriele Svelto2021/03/30 12:27 PM
    HTM and TLEFoo_2021/03/30 12:31 PM
      HTM and TLEdmcq2021/03/30 02:03 PM
      Intel RTM and HLE is a successGanon2021/03/30 04:22 PM
        Intel RTM and HLE is a success (is it?)Foo_2021/03/31 12:16 AM
          Intel RTM and HLE was an abject failureanonymou52021/03/31 02:04 AM
          Intel RTM and HLE is a success (is it?)Andrey2021/03/31 04:27 AM
            Intel RTM and HLE is a success (is it?)Foo_2021/03/31 04:58 AM
              Intel RTM and HLE is a success (is it?)Andrey2021/03/31 06:45 AM
                Intel RTM and HLE is a success (is it?)Foo_2021/03/31 08:32 AM
                  Intel RTM and HLE is a success (is it?)Andrey2021/03/31 08:57 AM
                    Intel RTM and HLE is a success (is it?)anonymou52021/03/31 09:39 AM
                      ^ feel free to delete this one -- broken HTML there (NT)anonymou52021/03/31 09:40 AM
                      Intel RTM and HLE is a success (is it?)Andrey2021/03/31 09:47 AM
                    Intel RTM and HLE is a success (is it?)anonymou52021/03/31 09:40 AM
                Intel RTM and HLE is a success (is it?)Ganon2021/03/31 08:58 AM
                  Intel RTM and HLE is a success (is it?)anonymou52021/03/31 09:42 AM
                  Intel RTM and HLE is a success (is it?)Linus Torvalds2021/03/31 10:54 AM
                    Intel RTM and HLE is a success (is it?)Linus Torvalds2021/03/31 11:00 AM
                      Any idea about IBM?Mark Roulo2021/03/31 11:15 AM
                        Any idea about IBM?Linus Torvalds2021/03/31 11:37 AM
                          Any idea about IBM?dmcq2021/03/31 02:04 PM
                            Any idea about IBM?Linus Torvalds2021/03/31 03:44 PM
                              A non straw man view of hardware transactional memoryGanon2021/03/31 06:52 PM
                                A non straw man view of hardware transactional memoryanon22021/03/31 10:03 PM
                                  A non straw man view of hardware transactional memoryCarson2021/04/02 12:11 AM
                                    A non straw man view of hardware transactional memoryanon22021/04/02 04:28 AM
                              IBM zArch TM - guaranteed progressDavid Kanter2021/03/31 07:37 PM
                              Any idea about IBM?Andrey2021/03/31 10:31 PM
                                Any idea about IBM?Linus Torvalds2021/04/01 09:54 AM
                                  Any idea about IBM?Andrey2021/04/02 11:50 AM
                        Any idea about IBM?someone2021/03/31 11:02 PM
                      Intel RTM and HLE is a success (is it?)anon22021/03/31 02:46 PM
                        Intel RTM and HLE is a success (is it?)Linus Torvalds2021/03/31 04:08 PM
                          Leaving it to software is tricky!David Kanter2021/03/31 07:41 PM
                            And a hardware predicttor needs access to fallback timingCarson2021/04/01 10:13 PM
                              Hardware fallback pathAnon2021/04/02 09:51 AM
                              And a hardware predicttor needs access to fallback timingLinus Torvalds2021/04/03 09:41 AM
                                And a hardware predicttor needs access to fallback timingLinus Torvalds2021/04/03 10:11 AM
                                  And a hardware predicttor needs access to fallback timingsr2021/04/03 10:30 AM
                                    And a hardware predicttor needs access to fallback timingLinus Torvalds2021/04/03 11:14 AM
                                      And a hardware predicttor needs access to fallback timingsr2021/04/03 11:39 AM
                                        And a hardware predicttor needs access to fallback timingAnon2021/04/03 01:08 PM
                                          And a hardware predicttor needs access to fallback timingsr2021/04/03 01:33 PM
                                            And a hardware predicttor needs access to fallback timingdmcq2021/04/04 04:35 AM
                                        And a hardware predicttor needs access to fallback timingLinus Torvalds2021/04/03 01:22 PM
                                          Transactional memory isn't exclusive to lockingsr2021/04/03 11:17 PM
                                            Transactional memory isn't exclusive to lockingAspect of Anonimity2021/04/04 02:49 AM
                                            Transactional memory isn't exclusive to lockingAndrey2021/04/04 03:58 AM
                                              Transactional memory isn't exclusive to lockingsr2021/04/04 09:10 AM
                                                Transactional memory isn't exclusive to lockingAndrey2021/04/04 09:33 AM
                                                  Transactional memory isn't exclusive to lockingsr2021/04/05 01:41 AM
                                      And a hardware predicttor needs access to fallback timingGeertB2021/04/04 06:08 PM
                            Leaving it to software is tricky!Andrey2021/04/02 02:00 PM
                          Intel RTM and HLE is a success (is it?)@never_released2021/04/01 07:21 AM
                            Intel RTM and HLE is a success (is it?)@never_released2021/04/01 07:30 AM
                            Intel RTM and HLE is a success (is it?)Linus Torvalds2021/04/01 09:00 AM
                              Intel RTM and HLE is a success (is it?)dmcq2021/04/01 09:35 AM
                                Intel RTM and HLE is a success (is it?)Linus Torvalds2021/04/01 09:59 AM
                                  Is HTM actually in ARMv9?dncq2021/04/01 10:26 AM
                                    Is HTM actually in ARMv9?Linus Torvalds2021/04/01 11:13 AM
                              Intel RTM and HLE is a success (is it?)Jörn Engel2021/04/01 08:15 PM
                          Intel RTM and HLE is a success (is it?)---2021/04/02 09:00 AM
                      Intel RTM and HLE is a success (is it?)Jon Masters2021/04/01 09:56 AM
                        RockMichael S2021/04/01 11:29 AM
            Intel RTM and HLE is a success (is it?)Linus Torvalds2021/03/31 10:50 AM
              Intel RTM and HLE is a success (is it?)anon22021/03/31 02:57 PM
                Intel RTM and HLE is a success (is it?)anon32021/03/31 03:09 PM
          Intel RTM and HLE is a success (is it?)someone2021/03/31 10:56 PM
            Intel RTM and HLE is a success (is it?)someone2021/03/31 11:21 PM
              Intel RTM and HLE is a success (is it?)none2021/04/01 03:31 AM
                Intel RTM and HLE is a success (is it?)anonymou52021/04/01 08:24 AM
                  Intel RTM and HLE is a success (is it?)anony2021/04/01 09:26 AM
                  Intel RTM and HLE is a success (is it?)none2021/04/01 10:20 AM
                Intel RTM and HLE is a success (is it?)Brendan2021/04/01 04:23 PM
                  Intel RTM and HLE is a success (is it?)Adrian2021/04/02 12:03 AM
      Transactional memory similarity to garbage collectionPaul A. Clayton2021/04/05 12:53 PM
        Maybe notMark Roulo2021/04/05 02:07 PM
        Transactional memory similarity to garbage collectionAnon2021/04/05 02:14 PM
        No conflict between theory and practiceAspect of Anonimity2021/04/05 06:57 PM
          No conflict between theory and practiceNoSpammer2021/04/05 08:38 PM
            No conflict between theory and practicedmcq2021/04/06 06:05 AM
              No conflict between theory and practicesr2021/04/06 08:22 AM
                No conflict between theory and practiceBen LaHaise2021/04/06 02:43 PM
                  No conflict between theory and practicesr2021/04/07 08:42 AM
                    No conflict between theory and practiceAnon2021/04/07 09:06 AM
                    No conflict between theory and practiceLinus Torvalds2021/04/07 09:35 AM
                      No conflict between theory and practicesr2021/04/07 11:34 AM
                        If HTM were well implemented, nobody would complain (NT)Anon2021/04/07 11:54 AM
                          If HTM were well implemented, nobody would complaindmcq2021/04/07 02:36 PM
                            If HTM were well implemented, nobody would complainAnon2021/04/07 03:04 PM
                          If HTM were well implemented, nobody would complain---2021/04/08 08:37 AM
                        No conflict between theory and practiceLinus Torvalds2021/04/07 12:20 PM
                          No conflict between theory and practiceAndrey2021/04/07 01:32 PM
                            No conflict between theory and practicedmcq2021/04/07 02:32 PM
                              No conflict between theory and practiceanonymou52021/04/07 03:26 PM
                              No conflict between theory and practiceAndrey2021/04/07 04:54 PM
                                No conflict between theory and practiceLinus Torvalds2021/04/08 07:41 AM
                                  No conflict between theory and practiceAndrey2021/04/08 08:12 AM
                                  No conflict between theory and practiceRobert Williams2021/04/08 08:15 AM
                                    No conflict between theory and practiceLinus Torvalds2021/04/08 08:56 AM
                                      No conflict between theory and practiceRobert Williams2021/04/08 06:50 PM
                                        No conflict between theory and practiceLinus Torvalds2021/04/09 08:25 AM
                                          TSX for all?Robert Williams2021/04/09 11:46 AM
                                            It helps adoption when developers can run the code an their machines.Mark Roulo2021/04/09 11:54 AM
                                              It helps adoption when developers can run the code an their machines.me2021/04/09 01:21 PM
                                                It helps adoption when developers can run the code an their machines.Andrey2021/04/10 06:08 AM
                                                  It helps adoption when developers can run the code an their machines.me2021/04/10 11:43 AM
                                                    It helps adoption when developers can run the code an their machines.Robert Williams2021/04/10 06:05 PM
                                                      It helps adoption when developers can run the code an their machines.Andrey2021/04/11 12:42 AM
                                                        It helps adoption when developers can run the code an their machines.Michael S2021/04/11 03:23 AM
                                              It helps adoption when developers can run the code an their machines.Robert Williams2021/04/10 07:24 AM
                                                It helps adoption when developers can run the code an their machines.Andrey2021/04/10 09:36 AM
                                                  It helps adoption when developers can run the code an their machines.Michael S2021/04/10 09:58 AM
                                                    It helps adoption when developers can run the code an their machines.Robert Williams2021/04/10 10:42 AM
                                                    It helps adoption when developers can run the code an their machines.Brendan2021/04/10 10:27 PM
                                                      It helps adoption when developers can run the code an their machines.Michael S2021/04/11 02:34 AM
                                                        It helps adoption when developers can run the code an their machines.Brendan2021/04/11 03:18 PM
                                            TSX for all?wumpus2021/04/09 12:10 PM
                                            TSX for all?Linus Torvalds2021/04/09 02:03 PM
                                              [CLICK BAIT?] Torvalds to recommend arm64!anonymous22021/04/09 02:17 PM
                                              TSX for all?Linus Torvalds2021/04/09 02:22 PM
                                                amen! (NT)anonymou52021/04/09 04:42 PM
                                            TSX for all?Emil Briggs2021/04/10 04:52 AM
                                              TSX for all?Michael S2021/04/10 10:13 AM
                                                TSX for all?Brendan2021/04/10 10:05 PM
                                          No conflict between theory and practiceanonymouse2021/04/09 02:02 PM
                            No conflict between theory and practiceLinus Torvalds2021/04/07 04:12 PM
                              No conflict between theory and practiceAndrey2021/04/07 04:33 PM
                                No conflict between theory and practiceanon22021/04/07 07:12 PM
                                  No conflict between theory and practiceAndrey2021/04/07 11:29 PM
                                    No conflict between theory and practiceAnon2021/04/07 11:50 PM
                                    No conflict between theory and practiceanon22021/04/07 11:52 PM
                                      No conflict between theory and practiceAndrey2021/04/08 01:41 AM
                                        No conflict between theory and practiceAdrian2021/04/08 02:09 AM
                                          No conflict between theory and practiceAndrey2021/04/08 02:50 AM
                                            No conflict between theory and practiceAdrian2021/04/08 04:07 AM
                                            No conflict between theory and practiceanon22021/04/08 04:18 AM
                                              No conflict between theory and practiceAndrey2021/04/08 07:18 AM
                                                No conflict between theory and practiceanon22021/04/08 08:11 AM
                                                  No conflict between theory and practiceAndrey2021/04/08 08:48 AM
                                                    No conflict between theory and practiceanon22021/04/08 03:10 PM
                                            No conflict between theory and practice---2021/04/08 07:30 PM
                                              No conflict between theory and practicedmcq2021/04/09 01:25 AM
                                                No conflict between theory and practiceLinus Torvalds2021/04/09 08:44 AM
                                        No conflict between theory and practiceanon22021/04/08 03:09 AM
                                          No conflict between theory and practicesr2021/04/10 12:22 AM
                                            No conflict between theory and practiceAnon2021/04/10 03:00 AM
                                              No conflict between theory and practiceEtienne Lorrain2021/04/11 11:56 PM
                                                No conflict between theory and practiceAnon2021/04/12 12:54 AM
                                                  No conflict between theory and practicedmcq2021/04/12 12:44 PM
                              No conflict between theory and practiceGabriele Svelto2021/04/08 12:03 AM
                                No conflict between theory and practicedmcq2021/04/12 12:53 PM
                                  No conflict between theory and practicedmcq2021/04/14 03:50 AM
                      transactional memory = memory lock/unlocksr2021/04/09 11:56 PM
                        transactional memory = memory lock/unlockAnon2021/04/10 03:05 AM
                    No conflict between theory and practiceanon22021/04/07 04:19 PM
                No conflict between theory and practicedmcq2021/04/07 12:16 PM
            No conflict between theory and practiceAnon2021/04/06 09:46 AM
            No conflict between theory and practiceAspect of Anonimity2021/04/06 01:16 PM
              No conflict between theory and practiceNoSpammer2021/04/09 11:02 PM
                No conflict between theory and practicesr2021/04/10 12:47 AM
                No conflict between theory and practiceAspect of Anonimity2021/04/10 10:30 PM
                  No conflict between theory and practiceAndrey2021/04/11 04:05 AM
                    HmAspect of Anonimity2021/04/12 06:29 PM
                      Special internal SRAM to store Mutex?Etienne Lorrain2021/04/13 12:01 AM
                        Special internal SRAM to store Mutex?Anon2021/04/13 12:26 AM
                        Special internal SRAM to store Mutex?Linus Torvalds2021/04/13 08:53 AM
                        Special internal SRAM to store Mutex?Dan Fay2021/04/13 11:03 AM
                          Special internal SRAM to store Mutex?Ben LaHaise2021/04/13 02:32 PM
                          Special internal SRAM to store Mutex?Gabriele Svelto2021/04/13 10:43 PM
                        Special internal SRAM to store Mutex?Carson2021/04/13 09:19 PM
          No conflict between theory and practicesr2021/04/06 06:12 AM
            No conflict between theory and practiceAnon2021/04/06 09:43 AM
            No conflict between theory and practiceAspect of Anonimity2021/04/06 02:20 PM
              No conflict between theory and practicesr2021/04/07 09:09 AM
                No conflict between theory and practiceanon22021/04/07 07:53 PM
  Armv9 officially announceddmcq2021/03/30 02:28 PM
    Totally backwads logic on compatibilityHeikki Kultala2021/03/30 02:44 PM
      Totally backwads logic on compatibilityDoug S2021/03/31 11:09 AM
        Totally backwads logic on compatibilitydmcq2021/03/31 02:15 PM
  Armv9 officially announcedv92021/04/12 02:57 PM
    Armv9 officially announcedj2021/04/13 04:07 AM
      Armv9 officially announcedDoug S2021/04/13 09:21 AM
        Armv9 officially announcedanonymou52021/04/13 10:06 AM
          Armv9 officially announcedDoug S2021/04/13 12:01 PM
        Armv9 officially announceddmcq2021/04/13 02:20 PM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell avocado?