----- On Dec 14, 2017, at 2:48 PM, Peter Zijlstra peterz@xxxxxxxxxxxxx wrote: > On Thu, Dec 14, 2017 at 12:50:13PM -0600, Christopher Lameter wrote: >> Ultimately I wish fast increments like done by this_cpu_inc() could be >> implemented in an efficient way on non x86 platforms that do not have >> cheap instructions like that. > > So the problem isn't migration; for that we could wrap the operation in > preempt_disable() which is not more expensive than rseq would be. And a > lot more deterministic. > > The problem instead is interrupts, which can result in nested load-store > operations, and that comes apart. This then means having to disable > interrupts over these things and _that_ is expensive. Then could we consider checking a per task-struct rseq_cs pointer when returning from interrupt handler ? This rseq_cs pointer would track kernel restartable sequences. This would also work for NMI handlers. Thanks, Mathieu -- Mathieu Desnoyers EfficiOS Inc. http://www.efficios.com -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html