From: Rik van Riel <riel@redhat.com>
To: David Daney <ddaney.cavm@gmail.com>
Cc: linux-kernel@vger.kernel.org, aquini@redhat.com,
walken@google.com, lwoodman@redhat.com, jeremy@goop.org,
Jan Beulich <JBeulich@novell.com>,
Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [RFC PATCH 3/3] x86,smp: auto tune spinlock backoff delay factor
Date: Fri, 21 Dec 2012 21:51:35 -0500 [thread overview]
Message-ID: <50D52037.60602@redhat.com> (raw)
In-Reply-To: <50D5033A.2070309@gmail.com>
On 12/21/2012 07:47 PM, David Daney wrote:
>> +#define MIN_SPINLOCK_DELAY 1
>> +#define MAX_SPINLOCK_DELAY 1000
>> +DEFINE_PER_CPU(int, spinlock_delay) = { MIN_SPINLOCK_DELAY };
>
>
> This gives the same delay for all locks in the system, but the amount of
> work done under each lock is different. So, for any given lock, the
> delay is not optimal.
>
> This is an untested idea that came to me after looking at this:
>
> o Assume that for any given lock, the optimal delay is the same for all
> CPUs in the system.
>
> o Store a per-lock delay value in arch_spinlock_t.
>
> o Once a CPU owns the lock it can update the delay as you do for the
> per_cpu version. Tuning the delay on fewer of the locking operations
> reduces bus traffic, but makes it converge more slowly.
>
> o Bonus points if you can update the delay as part of the releasing store.
It would absolutely have to be part of the same load and
store cycle, otherwise we would increase bus traffic and
defeat the purpose.
However, since spinlock contention should not be the
usual state, and all a scalable lock does is make sure
that N+1 CPUs does not perform worse than N CPUs, using
scalable locks is a stop-gap measure.
I believe a stop-gap measure should be kept as simple as
we can. I am willing to consider moving to a per-lock
delay factor if we can figure out an easy way to do it,
but I would like to avoid too much extra complexity...
next prev parent reply other threads:[~2012-12-22 2:48 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-21 23:49 [RFC PATCH 0/3] x86,smp: make ticket spinlock proportional backoff w/ auto tuning Rik van Riel
2012-12-21 23:50 ` [RFC PATCH 1/3] x86,smp: move waiting on contended lock out of line Rik van Riel
2012-12-22 3:05 ` Steven Rostedt
2012-12-22 4:40 ` Michel Lespinasse
2012-12-22 4:48 ` Rik van Riel
2012-12-23 22:52 ` Rafael Aquini
2012-12-21 23:51 ` [RFC PATCH 2/3] x86,smp: proportional backoff for ticket spinlocks Rik van Riel
2012-12-22 3:07 ` Steven Rostedt
2012-12-22 3:14 ` Steven Rostedt
2012-12-22 3:47 ` Rik van Riel
2012-12-22 4:44 ` Michel Lespinasse
2012-12-23 22:55 ` Rafael Aquini
2012-12-21 23:51 ` [RFC PATCH 3/3] x86,smp: auto tune spinlock backoff delay factor Rik van Riel
2012-12-21 23:56 ` [RFC PATCH 3/3 -v2] " Rik van Riel
2012-12-22 0:18 ` Eric Dumazet
2012-12-22 2:43 ` Rik van Riel
2012-12-22 0:48 ` Eric Dumazet
2012-12-22 2:57 ` Rik van Riel
2012-12-22 3:29 ` Eric Dumazet
2012-12-22 3:44 ` Rik van Riel
2012-12-22 3:33 ` Steven Rostedt
2012-12-22 3:50 ` Rik van Riel
2012-12-26 19:10 ` Eric Dumazet
2012-12-26 19:27 ` Eric Dumazet
2012-12-26 19:51 ` Rik van Riel
2012-12-27 6:07 ` Michel Lespinasse
2012-12-27 14:27 ` Eric Dumazet
2012-12-27 14:35 ` Rik van Riel
2012-12-27 18:41 ` Jan Beulich
2012-12-27 19:09 ` Rik van Riel
2013-01-03 9:05 ` Jan Beulich
2013-01-03 13:24 ` Steven Rostedt
2013-01-03 13:35 ` Eric Dumazet
2013-01-03 15:32 ` Steven Rostedt
2013-01-03 16:10 ` Eric Dumazet
2013-01-03 16:45 ` Steven Rostedt
2013-01-03 17:54 ` Eric Dumazet
2012-12-27 18:49 ` Eric Dumazet
2012-12-27 19:31 ` Rik van Riel
2012-12-29 0:42 ` Eric Dumazet
2012-12-29 10:27 ` Michel Lespinasse
2013-01-03 18:17 ` Eric Dumazet
2012-12-22 0:47 ` [RFC PATCH 3/3] " David Daney
2012-12-22 2:51 ` Rik van Riel [this message]
2012-12-22 3:49 ` Steven Rostedt
2012-12-22 3:58 ` Rik van Riel
2012-12-23 23:08 ` Rafael Aquini
2012-12-22 5:42 ` Michel Lespinasse
2012-12-22 14:32 ` Rik van Riel
2013-01-02 0:06 ` ticket spinlock proportional backoff experiments Michel Lespinasse
2013-01-02 0:09 ` [PATCH 1/2] x86,smp: simplify __ticket_spin_lock Michel Lespinasse
2013-01-02 15:31 ` Rik van Riel
2013-01-02 0:10 ` [PATCH 2/2] x86,smp: proportional backoff for ticket spinlocks Michel Lespinasse
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=50D52037.60602@redhat.com \
--to=riel@redhat.com \
--cc=JBeulich@novell.com \
--cc=aquini@redhat.com \
--cc=ddaney.cavm@gmail.com \
--cc=jeremy@goop.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lwoodman@redhat.com \
--cc=tglx@linutronix.de \
--cc=walken@google.com \
/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;
as well as URLs for NNTP newsgroup(s).