By: rwessel (rwessel.delete@this.yahoo.com), August 22, 2022 4:47 pm
Room: Moderated Discussions
Anon (no.delete@this.spam.com) on August 22, 2022 12:35 pm wrote:
> Linus Torvalds (torvalds.delete@this.linux-foundation.org) on August 22, 2022 11:32 am wrote:
> > So I'm saying that "abort on conflict" is a fundamentally untenable model,
> > because it means that once you have contention, things just get horribly worse.
> > It's why I think that "forward guarantee" model is a requirement.
>
> The "abort on conflict" is an optimistic optimization that works most of the time,
> a high transaction setup time breaks that, but the optimization is a good idea on a
> sane implementation, the 1 trillion dollars question is "what should I do after abort?",
> "take a lock" isn't a good answear, "just retry" isn't a good answear either.
On Z, the system offers a suggestion via the condition code after the transaction aborts, as to whether or not a retry is likely to be profitable. You add a counter to limit the retries as well. Then use the PPA instruction to tell the processor how often you've done the retry.
> Linus Torvalds (torvalds.delete@this.linux-foundation.org) on August 22, 2022 11:32 am wrote:
> > So I'm saying that "abort on conflict" is a fundamentally untenable model,
> > because it means that once you have contention, things just get horribly worse.
> > It's why I think that "forward guarantee" model is a requirement.
>
> The "abort on conflict" is an optimistic optimization that works most of the time,
> a high transaction setup time breaks that, but the optimization is a good idea on a
> sane implementation, the 1 trillion dollars question is "what should I do after abort?",
> "take a lock" isn't a good answear, "just retry" isn't a good answear either.
On Z, the system offers a suggestion via the condition code after the transaction aborts, as to whether or not a retry is likely to be profitable. You add a counter to limit the retries as well. Then use the PPA instruction to tell the processor how often you've done the retry.