On 01/03/2017 11:18 AM, Peter Zijlstra wrote: > On Sun, Dec 25, 2016 at 03:26:01PM -0500, Waiman Long wrote: >> A number of cmpxchg calls in qspinlock_paravirt.h were replaced by more >> relaxed versions to improve performance on architectures that use LL/SC. > Claim without numbers ;-)
Well it is hard to produce actual numbers here as I don't have the setup to gather data. >> All the locking related cmpxchg's are replaced with the _acquire >> variants: >> - pv_queued_spin_steal_lock() >> - trylock_clear_pending() > So these seem to make sense in that they're in 'fast' paths.. > >> The cmpxchg's related to hashing are replaced by either by the _release >> or the _relaxed variants. See the inline comment for details. > > But these not so much, we're going to put the vcpu to sleep, why does it > make sense to 'optimize' the wait/kick stuff? I haven't thought too much about fast/slow paths when I was making the patch. You are right that we properly don't need to do that for the slowpath cases. I can modify the patch to do just the fast patch change. Cheers, Longman