Re: [PATCH v2] locking/pvqspinlock: restore/set vcpu_hashed state after failing adaptive locking spinning

From: Waiman Long
Date: Thu Jul 14 2016 - 10:56:47 EST


On 07/14/2016 07:26 AM, Peter Zijlstra wrote:
On Thu, Jul 14, 2016 at 04:15:56PM +0800, Wanpeng Li wrote:
In this case, lock holder inserts the pv_node of queue head into the
hash table and set _Q_SLOW_VAL unnecessary. This patch avoids it by
restoring/setting vcpu_halted state after failing adaptive locking
^^^^^^
spinning.

- WRITE_ONCE(pn->state, vcpu_halted);
+ WRITE_ONCE(pn->state, vcpu_hashed);
^^^^^^

The Changelog meant so say vcpu_hashed, surely?

Do you have chance to review the "Fix missed PV wakeup & support PPC" patch (https://lkml.org/lkml/2016/5/31/677) that I had sent out a while ago? That patch addressed a similar pv_hash leakage and collision problem.

Cheers,
Longman