mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Jason Low <jason.low2@hp.com>
To: mingo@redhat.com, peterz@infradead.org,
	paulmck@linux.vnet.ibm.com, Waiman.Long@hp.com,
	torvalds@linux-foundation.org, tglx@linutronix.de,
	jason.low2@hp.com
Cc: linux-kernel@vger.kernel.org, riel@redhat.com,
	akpm@linux-foundation.org, davidlohr@hp.com, hpa@zytor.com,
	aswin@hp.com, scott.norton@hp.com
Subject: [RFC 0/3] mutex: Reduce spinning contention when there is no lock owner
Date: Tue, 14 Jan 2014 16:33:07 -0800	[thread overview]
Message-ID: <1389745990-7069-1-git-send-email-jason.low2@hp.com> (raw)

While optimistic spinning is beneficial to performance, I have found that
threads can potentially spin for a long time while there is no lock owner
during high contention cases. In these scenarios, too much spinning can reduce
performance. This RFC patchset attempts to address some of the issues with
spinning too much with no owner.

Patch 1 changes the mutex_can_spin_on_owner() function to address the
need_resched() case. Patch 2 modifies the way mutex spinners are queued to
reduce mspin_lock and mspin_unlock overhead when there is no owner, and is also
necessary patch for patch 3. Patch 3 limits the number of times each thread
can spin on lock->count when there is no lock owner.

This change benefit the AIM7 fserver (run on disk) at 1000-2000 users
on an 8 socket (80 core) box, with a +19.5% gain with 3.13-rc7 + patchset
compared to the baseline 3.13-rc7 kernel. At 100-900 users, the
% gain was about 4.9%, and there wasn't much performance difference
at 10-90 users. On a 2 socket (8 core) box, there was about a 5.5%
improvement at 1000-2000 users.


             reply	other threads:[~2014-01-15  0:33 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-15  0:33 Jason Low [this message]
2014-01-15  0:33 ` [RFC 1/3] mutex: In mutex_can_spin_on_owner(), return false if task need_resched() Jason Low
2014-01-15  7:44   ` Peter Zijlstra
2014-01-15  7:48     ` Peter Zijlstra
2014-01-15 20:37       ` Paul E. McKenney
2014-01-15  0:33 ` [RFC 2/3] mutex: Modify the way optimistic spinners are queued Jason Low
2014-01-15 15:10   ` Waiman Long
2014-01-15 19:23     ` Jason Low
2014-01-15  0:33 ` [RFC 3/3] mutex: When there is no owner, stop spinning after too many tries Jason Low
2014-01-15  1:00   ` Andrew Morton
2014-01-15  7:04     ` Jason Low
2014-01-15  1:06   ` Davidlohr Bueso
2014-01-15  7:34     ` Jason Low
2014-01-15 15:19   ` Waiman Long
2014-01-16  2:45   ` Jason Low
2014-01-16  3:14     ` Linus Torvalds
2014-01-16  6:46       ` Jason Low
2014-01-16 12:05         ` Peter Zijlstra
2014-01-16 20:48           ` 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=1389745990-7069-1-git-send-email-jason.low2@hp.com \
    --to=jason.low2@hp.com \
    --cc=Waiman.Long@hp.com \
    --cc=akpm@linux-foundation.org \
    --cc=aswin@hp.com \
    --cc=davidlohr@hp.com \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=paulmck@linux.vnet.ibm.com \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --cc=scott.norton@hp.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®