On 15/12/2015 14:59, alvise rigo wrote: >> > If we have two CPUs, with CPU 0 executing LL and the CPU 1 executing a >> > store, you can model this as a consensus problem. For example, CPU 0 >> > could propose that the subsequent SC succeeds, while CPU 1 proposes that >> > it fails. The outcome of the SC instruction depends on who wins. > I see your point. This, as you wrote, holds only when we attempt to > make the fast path wait-free. > However, the implementation I proposed is not wait-free and somehow > serializes the accesses made to the shared resources (that will > determine if the access was successful or not) by means of a mutex. > The assumption I made - and somehow verified - is that the "colliding > fast accesses" are rare.
Isn't the fast path (where TLB_EXCL is not set) wait-free? This is enough to mess up the theory, though in practice it works. > I guess you also agree on this, otherwise how > could a wait-free implementation possibly work without being coupled > with primitives with appropriate consensus number? It couldn't. :) Paolo