On Sun, Jun 26, 2016 at 12:28:13AM +0800, Boqun Feng wrote: > On Sat, Jun 25, 2016 at 06:09:22PM +0200, Peter Zijlstra wrote: > > That works here, but it would not work for the need_resched() in > > mutex_spin_on_owner() and mutex_optimistic_spin() which need equal > > treatment. > > > > Because those too we want to limit. > > > > The count thing, while a little more cumbersome, is more widely > > applicable than just the one OSQ case where we happen to have a cpu > > number. > > > > But if we don't have a cpu number, which vcpu's preemption are we > trying to detect?
_this_ vcpu's preemption. If the yield count of this cpu changes, we know this vcpu has been scheduled and we should stop spinning. This is similar to the need_resched() case, which check is _this_ cpu should reschedule.

