Any idea about IBM?

By: Andrey (andrey.semashev.delete@this.gmail.com), April 2, 2021 11:50 am
Room: Moderated Discussions
Linus Torvalds (torvalds.delete@this.linux-foundation.org) on April 1, 2021 10:54 am wrote:
> Andrey (andrey.semashev.delete@this.gmail.com) on March 31, 2021 11:31 pm wrote:
> >
> > I don't see why TSX and similar solutions wouldn't work in these constrained cases. AFAIR, Intel's
> > TSX implementation actually surpasses the 4 cache lines and has no limit on instruction count.
>
> [ I thought I already answered this, but I don't see it,
> so I probably previewed it and then forgot to post it ]
>
> TSX could do it.
>
> But when I tested it, using TSX for small locked regions was slower than
> just taking the lock. Both non-contended and when under contention.

Ok, so the main complaint for the small to medium transaction sizes is performance/QoI rather than design. Which leaves me hoping that performance of successful transaction path can be improved, so that TSX is useful in such cases.

Admittedly, I haven't found any performance numbers on TSX. I wonder which implementation you were testing and whether there is difference between Haswell and Skylake.

I have to say that I don't consider large transactions (as in one lock to protect everything) or cases with lots of expected conflicts causing aborts the main target to aim for with TSX. The former will likely cause aborts because of exceeding transaction limits, thread preemption, page faults, IO, etc., and will benefit more from software redesign anyway. And aborts, as you rightly pointed out, are difficult to optimize. It would probably require support for partial rollback, when some data that is not affected by the previous conflict is not re-evaluated upon retry. I imagine this would require a lot of dependency tracking and difficult to implement in hardware, so not probably worth it.

I think, the main targets for TSX are:

1. Small sized transactions, down to a couple instructions long. This is good to emulate some atomic operations (e.g. FP atomics, arithmetics with saturation, atomics on large objects and big integers, etc.) which would otherwise require a CAS loop or a lock. Here, TSX should offer at least comparable performance to an equivalent CAS loop, and I imagine that should be possible because the CAS loop body may have overhead that the transaction body doesn't. For example, with FP arithmetics you would be able to avoid bouncing data between GPR and vector registers. (Note: FP atomics are part of standard C++ now.)

And it looks like at least this category doesn't even need that much extra overhead from maintaining statistics. Atomics could simply fallback to a CAS loop or a lock after a fixed number of attempts to complete the transaction.

2. Another application is lock-free containers and data structures, which would otherwise require lock-free techniques that are difficult or not possible to implement. In this case, the benefit is possibly greater since lock-free algorithms often require multiple atomic instructions whereas TSX could have a cost of one. And I imagine, it should work no worse than atomics in case of contention too, as both implementations would have to retry some work on conflicts.

3. Cases when most of the time you need read accesses (i.e. when you would otherwise use read/write locks, with reads being prevalent). This seems to be the case of SAP HANA that was mentioned earlier in the thread. If their numbers are to be believed, then current TSX already works well in this scenario. Now, I would agree that the cases when you need lots of pure reads and near to no writes are not met very often, but not non-existent. You are certainly left wishing to avoid the cost of the read/write lock and bouncing its data between cores. Also, some implementations of the read-lock operation block internally (i.e. when multiple candidate readers try to read-lock concurrently), which is also unfortunate.

If TSX is able to support these three categories of use cases, I think it is a very useful feature. More so useful given that the number of CPU cores is increasing. I certainly wouldn't want it to be dropped or segmented into some market niche, as Intel seems to be doing. I want it fixed and available everywhere.

BTW, thank you Linus for your comments on this topic. They are very enlightening.
< 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?