Messages in this thread | | | From | Wanpeng Li <> | Date | Fri, 15 Jul 2016 15:45:58 +0800 | Subject | Re: [PATCH v3] locking/pvqspinlock: restore/set vcpu_hashed state after failing adaptive locking spinning |
| |
2016-07-15 15:09 GMT+08:00 Peter Zijlstra <peterz@infradead.org>: > On Fri, Jul 15, 2016 at 05:26:40AM +0800, Wanpeng Li wrote: >> 2016-07-14 22:52 GMT+08:00 Waiman Long <waiman.long@hpe.com>: >> [...] >> > As pv_kick_node() is called immediately after designating the next node as >> > the queue head, the chance of this racing is possible, but is not likely >> > unless the lock holder vCPU gets preempted for a long time at that right >> > moment. This change does not do any harm though, so I am OK with that. >> > However, I do want you to add a comment about the possible race in the code >> > as it isn't that obvious or likely. >> >> How about something like: >> >> /* >> * If the lock holder vCPU gets preempted for a long time, pv_kick_node will >> * advance its state and hash the lock, restore/set the vcpu_hashed state to >> * avoid the race. >> */ > > So I'm not sure. Yes it was a bug, but its fairly 'obvious' it should be
I believe Waiman can give a better comments. :)
> vcpu_hashed, we did after all hash the thing. > >> Btw, do you think patch title should be improved, what do you like? > > I changed it to: "locking/pvqspinlock: Fix double hash race"
Thanks. :)
Regards, Wanpeng Li
| |