No conflict between theory and practice

By: Andrey (andrey.semashev.delete@this.gmail.com), April 8, 2021 1:41 am
Room: Moderated Discussions
anon2 (anon.delete@this.anon.com) on April 8, 2021 12:52 am wrote:
> Andrey (andrey.semashev.delete@this.gmail.com) on April 8, 2021 12:29 am wrote:
> > anon2 (anon.delete@this.anon.com) on April 7, 2021 8:12 pm wrote:
> > > Andrey (andrey.semashev.delete@this.gmail.com) on April 7, 2021 5:33 pm wrote:
> > > >
> > > > How can the forward progress be guaranteed if the thread
> > > > can be interrupted in the middle of LL/SC body, which
> > > > resets the LL tag? As long as that is a possibility, you cannot have a guarantee of forward progress.
> > >
> > > Uh, why would you have to allow interrupts there??
> >
> > I used the term "interrupted" broadly here. It's not necessarily hardware
> > interrupts, but e.g. thread preemption and signal delivery.
>
> Ah, so you don't know what you're talking about then. That explains a lot.
>
> Thread preemption and signal delivery don't just "happen"
> out of the blue while a CPU is executing instructions!

As far as the running program is concerned, they do.

> > And regarding hardware interrupts, at least in case of ARM,
> > I don't think interrupts are architecturally suspended
> > by a LL. I suppose, a particular implementation might do
> > some tricks to postpone interrupt handling past SC,
> > but firstly, that would not something to rely on, and secondly, you can postpone for only so long.
>
> Totally missed the point. Of course interrupts are not architecturally suspended. Nobody
> said they were. The point is if your architecture gives a recipe for LL/SC sequences that
> can be assumed to eventually succeed, then the *microarchitecture* can suspend them.

Again, that would be an implementation detail of a given microarchitecture, not a guarantee.

> > > > Of course, the case when the LL/SC loop gets constantly interrupted and cannot progress is
> > > > pathologic and largely theoretical, but still it breaks the strict forward progress guarantee.
> > >
> > > The forward progress that Linus is talking about (the actual important practical guarantee) is that a core
> > > doesn't get stuck forever failing its SC because other agents in the machine keep taking its line away.
> >
> > And that can happen, too, although as long as those other agents
> > progress, this doesn't impact the forward progress guarantee.
>
> It obviously does not guarantee forward progress for that CPU.

Forward progress guarantee means that at least one thread is guaranteed to make progress. When I say you don't have this guarantee, it means there is a case, however theoretical, where none of the threads make progress.

> > > Were you not reading the thread? This is the exact kind of thing Linus said might actually be useful.
> > >
> > > He nowhere said that such a thing can't possibly be done (and he even said it is in mainframes). It's
> > > the problem of using x86 transactions that way (other than
> > > bad performance) is because there is no architectural
> > > specification telling us the conditions under which it is guaranteed to eventually succeed.
> >
> > I'm not sure what you're talking about here. I'm not saying HTM can't have a soft forward progress
> > guarantee, like LL/SC. On the opposite, I'm saying that it does.
>
> You are wrong. Many *actual* HTM implementations do not. Intel's does not, I think
> POWER does not. Contrary to this, no sane architecture requires a LL/SC fallback (for
> certain constrained sequences). What is difficult to understand about this?

All LL/SC architectures require a retry, which is a sign that forward progress is not guaranteed.

> > My point is that on both cases
> > it's not a strict guarantee, which means you have to have a retry/fallback path.
>
> No.
>
> > In the particular case of TSX the spec describes cases when the transaction will abort. The
> > problem is that it lists microarchitectural causes, which is basically a license for the CPU
> > to abort at its whim. And my suggestion is to minimize or straight eliminate those causes.
>
> It's not _your_ suggestion though, Linus has been talking about the usefulness of such constrained
> guaranteed transactions for the entire thread here. Nobody denies that, you're tilting at windmills
> or something because you're not understanding what people are saying, evidently.

Well, I'm not going to argue who was the first to suggest what. I'll just say that I think I agree with Linus on some points and not the other. In particular, I don't agree with his views on transaction constraints, and that these constraints would make that HTM design a success.
< 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?