On Thursday, February 20, 2014 12:25:10 AM UTC-8, Oleg Zabluda wrote: > > [...] > > My best guess is that it is due to high cost of indivisible > instructions with multiple memory operands (x86 doesn't have any). The > cost is high, because a lot of expensive state has to be kept for > speculative execution rollback. This is why > > 1. string operations are divisible (visible as separate loads and stores). > 2. HLE/RTM abort on page faults/etc >
On the second thought, the huge and well-known problems with multiple memory operands don't apply to x86, if it's just a contiguous memory a couple of cachelines long. The simplest observation is that x86 has no problem with non-locked instructions or their operands crossing cachelines, yet they are still indivisible (execution is all-or-nothing). Oleg. -- --- You received this message because you are subscribed to the Google Groups "Scalable Synchronization Algorithms" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/lock-free/2334855e-d6f3-4619-bf28-ab535e2f66fb%40googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.
