On Fri, 2012-11-09 at 10:24 -0800, Andi Kleen wrote: > Torvald Riegel <trie...@redhat.com> writes: > > > On Thu, 2012-11-08 at 17:23 -0800, Richard Henderson wrote: > >> + // Honor an abort from abortTransaction. > >> + else if (htm_abort_is_cancel(ret)) > >> + return a_abortTransaction | a_restoreLiveVariables; > > > > The problem is that we cannot reliably detect whether an abort with a > > certain abort reason code really means that we got canceled. A nested > > transaction is one example: how do we distinguish whether the nested or > > the outermost transaction were canceled?. > > In TSX you always come back to the outermost anyways.
That, and the fact that we cannot reliably communicate which transaction (on the programming language level) was supposed to be aborted, is exactly the problem that I described.