public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Anton Blanchard <anton@linuxcare.com.au>
To: Jonathan Lahr <lahr@sequent.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: kernel lock contention and scalability
Date: Mon, 5 Mar 2001 11:38:08 +1100	[thread overview]
Message-ID: <20010305113807.A3917@linuxcare.com> (raw)
In-Reply-To: <20010215104656.A6856@w-lahr.des.sequent.com>
In-Reply-To: <20010215104656.A6856@w-lahr.des.sequent.com>; from lahr@sequent.com on Thu, Feb 15, 2001 at 10:46:56AM -0800

 
Hi,

> To discover possible locking limitations to scalability, I have collected 
> locking statistics on a 2-way, 4-way, and 8-way performing as networked
> database servers.  I patched the [48]-way kernels with Kravetz's multiqueue 
> patch in the hope that mitigating runqueue_lock contention might better 
> reveal other lock contention.

...

>       24.38%  23.93%    15us(   218us)   4.3us(   111us)     744475     566289     178186      0  runqueue_lock
>       23.15%  38.78%    28us(   218us)   6.2us(   108us)     376292     230381     145911      0    schedule+0xe0

Tridge and I tried out the postgresql benchmark you used here and this
contention is due to a bug in postgres. From a quick strace, we found
the threads do a load of select(0, NULL, NULL, NULL, {0,0}). Basically all
threads are pounding on schedule().

Our guess is that the app has some form of userspace synchronisation
(semaphores/spinlocks). I'd argue that the app needs to be fixed not the
kernel, or a more valid test case is put forwards. :)

PS: I just looked at the postgresql source and the spinlocks (s_lock() etc)
are in a tight loop doing select(0, NULL, NULL, NULL, {0,0}). In samba
we have userspace spinlocks, but they cover small amounts of code and
offer an advantage over ipc semaphores. When you have to synchronise
large sections of code ipc semaphores are reasonably fast on linux and
would be a better fit.

Cheers,
Anton

  parent reply	other threads:[~2001-03-05  0:41 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-15 18:46 kernel lock contention and scalability Jonathan Lahr
2001-02-25  9:52 ` Manfred Spraul
2001-03-05 18:41   ` Jonathan Lahr
2001-03-05  0:38 ` Anton Blanchard [this message]
2001-03-06 22:45   ` Jonathan Lahr
2001-03-06 23:39     ` Matthew Kirkwood
2001-03-07  0:28       ` Tim Wright
2001-03-07  3:12         ` Jeff Dike
2001-03-07 22:13           ` Tim Wright
2001-03-08 23:26             ` Jeff Dike
2001-03-11  6:50       ` Anton Blanchard
2001-03-11  6:26     ` Anton Blanchard
     [not found] <98454d$19p9h$1@fido.engr.sgi.com>
2001-03-07  2:55 ` Rajagopal Ananthanarayanan
2001-03-07  5:48   ` Jeff Dike

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=20010305113807.A3917@linuxcare.com \
    --to=anton@linuxcare.com.au \
    --cc=lahr@sequent.com \
    --cc=linux-kernel@vger.kernel.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