Re: [PATCH RFC v5 7/8] pvqspinlock, x86: Add qspinlock para-virtualization support
From: Raghavendra K T <hidden>
Date: 2014-02-27 15:22:57
Also in:
virtualization
From: Raghavendra K T <hidden>
Date: 2014-02-27 15:22:57
Also in:
virtualization
On 02/27/2014 08:15 PM, Paolo Bonzini wrote: [...]
quoted
But neither of the VCPUs being kicked here are halted -- they're either running or runnable (descheduled by the hypervisor)./me actually looks at Waiman's code... Right, this is really different from pvticketlocks, where the *unlock* primitive wakes up a sleeping VCPU. It is more similar to PLE (pause-loop exiting).
Adding to the discussion, I see there are two possibilities here, considering that in undercommit cases we should not exceed HEAD_SPIN_THRESHOLD, 1. the looping vcpu in pv_head_spin_check() should do halt() considering that we have done enough spinning (more than typical lock-hold time), and hence we are in potential overcommit. 2. multiplex kick_cpu to do directed yield in qspinlock case. But this may result in some ping ponging?