Thread (57 messages) 57 messages, 8 authors, 2014-03-05

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

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?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help