From: Jason Low <jason.low2@hp.com>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Davidlohr Bueso <davidlohr@hp.com>,
mingo@kernel.org, aswin@hp.com, linux-kernel@vger.kernel.org
Subject: Re: [PATCH -tip/master 4/7] locking/mutex: Refactor optimistic spinning code
Date: Mon, 28 Jul 2014 09:39:48 -0700 [thread overview]
Message-ID: <1406565588.2411.8.camel@j-VirtualBox> (raw)
In-Reply-To: <20140728090821.GO6758@twins.programming.kicks-ass.net>
On Mon, 2014-07-28 at 11:08 +0200, Peter Zijlstra wrote:
> On Sun, Jul 27, 2014 at 10:18:41PM -0700, Davidlohr Bueso wrote:
> > +static bool mutex_optimistic_spin(struct mutex *lock,
> > + struct ww_acquire_ctx *ww_ctx, const bool use_ww_ctx)
> > +{
>
>
> > + /*
> > + * If we fell out of the spin path because of need_resched(),
> > + * reschedule now, before we try-lock the mutex. This avoids getting
> > + * scheduled out right after we obtained the mutex.
> > + */
> > + if (need_resched())
> > + schedule_preempt_disabled();
> > +
> > + return false;
> > +}
>
>
> > + if (mutex_optimistic_spin(lock, ww_ctx, use_ww_ctx)) {
> > + /* got it, yay! */
> > + preempt_enable();
> > + return 0;
> > }
> > +
> > /*
> > * If we fell out of the spin path because of need_resched(),
> > * reschedule now, before we try-lock the mutex. This avoids getting
> > @@ -475,7 +512,7 @@ slowpath:
> > */
> > if (need_resched())
> > schedule_preempt_disabled();
> > +
> > spin_lock_mutex(&lock->wait_lock, flags);
>
> We now have two if (need_resched) schedule_preempt_disable() instances,
> was that on purpose?
I think we can delete the extra check in mutex_optimistic_spin(). It is
sufficient to have it here and it also covers the case where the task
need_resched() without attempting to spin.
next prev parent reply other threads:[~2014-07-28 16:39 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-07-28 5:18 [PATCH -tip/master 1/7] locking/mutex: Unify arguments in lock/unlock slowpaths Davidlohr Bueso
2014-07-28 5:18 ` [PATCH -tip/master 2/7] locking/mutex: Document quick lock release when unlocking Davidlohr Bueso
2014-07-30 15:10 ` Jason Low
2014-07-30 18:20 ` Davidlohr Bueso
2014-07-28 5:18 ` [PATCH -tip/master 3/7] locking/mcs: Remove obsolete comment Davidlohr Bueso
2014-07-28 16:49 ` Jason Low
2014-07-28 16:53 ` Davidlohr Bueso
2014-07-28 16:57 ` Peter Zijlstra
2014-07-28 17:19 ` Jason Low
2014-07-28 16:54 ` Peter Zijlstra
2014-07-28 17:49 ` Jason Low
2014-07-28 18:50 ` Peter Zijlstra
2014-07-28 21:02 ` Jason Low
2014-07-30 15:11 ` Jason Low
2014-07-28 5:18 ` [PATCH -tip/master 4/7] locking/mutex: Refactor optimistic spinning code Davidlohr Bueso
2014-07-28 9:08 ` Peter Zijlstra
2014-07-28 16:39 ` Jason Low [this message]
2014-07-28 16:41 ` Davidlohr Bueso
2014-07-29 2:55 ` [PATCH -tip/master v2] " Davidlohr Bueso
2014-07-29 3:41 ` Jason Low
2014-07-29 4:31 ` Davidlohr Bueso
2014-07-29 4:51 ` [PATCH -tip/master v3] " Davidlohr Bueso
2014-07-30 15:18 ` [PATCH -tip/master 4/7] " Jason Low
2014-07-28 5:18 ` [PATCH -tip/master 5/7] locking/mutex: Use MUTEX_SPIN_ON_OWNER when appropriate Davidlohr Bueso
2014-07-30 15:19 ` Jason Low
2014-07-28 5:18 ` [PATCH 6/7] locking: Move docs into Documentation/locking/ Davidlohr Bueso
2014-07-28 5:18 ` [PATCH -tip/master 7/7] Documentation: Update locking/mutex-design.txt disadvantages Davidlohr Bueso
2014-07-28 18:09 ` Jason Low
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1406565588.2411.8.camel@j-VirtualBox \
--to=jason.low2@hp.com \
--cc=aswin@hp.com \
--cc=davidlohr@hp.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.