On 10/14/2015 05:28 AM, Peter Zijlstra wrote:
On Tue, Oct 13, 2015 at 04:50:25PM -0400, Waiman Long wrote:
On 10/13/2015 03:56 PM, Peter Zijlstra wrote:
So the below is exactly duplicated from the normal slowpath, so why
don't you keep that there?
It would get you something like:
if (
On 10/13/2015 04:44 PM, Peter Zijlstra wrote:
On Tue, Oct 13, 2015 at 04:41:41PM -0400, Waiman Long wrote:
On 10/13/2015 02:23 PM, Peter Zijlstra wrote:
On Tue, Sep 22, 2015 at 04:50:43PM -0400, Waiman Long wrote:
for (;; waitcnt++) {
+ loop = SPIN_THRESHOLD;
+
On Tue, Oct 13, 2015 at 04:50:25PM -0400, Waiman Long wrote:
> On 10/13/2015 03:56 PM, Peter Zijlstra wrote:
> >So the below is exactly duplicated from the normal slowpath, so why
> >don't you keep that there?
> >
> >It would get you something like:
> >
> > if (pv_wait_head_or_steal(..))
> >
On 10/13/2015 03:56 PM, Peter Zijlstra wrote:
On Tue, Sep 22, 2015 at 04:50:43PM -0400, Waiman Long wrote:
+gotlock:
/*
+* We now have the lock. We need to either clear the tail code or
+* notify the next one in queue as the new queue head.
*/
+ old = atom
On 10/13/2015 03:39 PM, Peter Zijlstra wrote:
On Tue, Sep 22, 2015 at 04:50:43PM -0400, Waiman Long wrote:
This patch allows one attempt for the lock waiter to steal the lock
when entering the PV slowpath. This helps to reduce the performance
penalty caused by lock waiter preemption while not h
On Tue, Oct 13, 2015 at 04:41:41PM -0400, Waiman Long wrote:
> On 10/13/2015 02:23 PM, Peter Zijlstra wrote:
> >On Tue, Sep 22, 2015 at 04:50:43PM -0400, Waiman Long wrote:
> >>for (;; waitcnt++) {
> >>+ loop = SPIN_THRESHOLD;
> >>+ while (loop) {
> >>+ /*
On 10/13/2015 02:23 PM, Peter Zijlstra wrote:
On Tue, Sep 22, 2015 at 04:50:43PM -0400, Waiman Long wrote:
for (;; waitcnt++) {
+ loop = SPIN_THRESHOLD;
+ while (loop) {
+ /*
+* Spin until the lock is free
+
On Tue, Sep 22, 2015 at 04:50:43PM -0400, Waiman Long wrote:
> +gotlock:
> /*
> + * We now have the lock. We need to either clear the tail code or
> + * notify the next one in queue as the new queue head.
>*/
> + old = atomic_read(&lock->val);
> + while ((old & _Q_T
On Tue, Sep 22, 2015 at 04:50:43PM -0400, Waiman Long wrote:
> This patch allows one attempt for the lock waiter to steal the lock
> when entering the PV slowpath. This helps to reduce the performance
> penalty caused by lock waiter preemption while not having much of
> the downsides of a real unf
On Tue, Sep 22, 2015 at 04:50:43PM -0400, Waiman Long wrote:
> for (;; waitcnt++) {
> + loop = SPIN_THRESHOLD;
> + while (loop) {
> + /*
> + * Spin until the lock is free
> + */
> + for (
10 matches
Mail list logo