mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Andi Kleen <ak@suse.de>
To: Alexander Viro <viro@math.psu.edu>
Cc: "Jeff V. Merkey" <jmerkey@timpanogas.org>,
	kumon@flab.fujitsu.co.jp, Rik van Riel <riel@conectiva.com.br>,
	linux-kernel@vger.kernel.org
Subject: Re: Negative scalability by removal of lock_kernel()?(Was: Strange performance behavior of 2.4.0-test9)
Date: Fri, 27 Oct 2000 09:46:13 +0200	[thread overview]
Message-ID: <20001027094613.A18382@gruyere.muc.suse.de> (raw)
In-Reply-To: <39F92187.A7621A09@timpanogas.org> <Pine.GSO.4.21.0010270257550.18660-100000@weyl.math.psu.edu>
In-Reply-To: <Pine.GSO.4.21.0010270257550.18660-100000@weyl.math.psu.edu>; from viro@math.psu.edu on Fri, Oct 27, 2000 at 03:13:33AM -0400

On Fri, Oct 27, 2000 at 03:13:33AM -0400, Alexander Viro wrote:
> I didn't look into recent changes in fs/locks.c, but I have quite problem
> inventing a scenario when _adding_ BKL (without reverting other changes)
> might give an absolute improvement. Well, I see a couple of really perverted
> scenarios, but... Seriously, folks, could you compare the 4 variants above
> and gather the contention data for the -test9 on your loads? That would help
> a lot.

I think it is easy to see.  Switching between CPUs for criticial section
always has an latency because the lock/data update needs some time to cross
the bus

When you have two CPUs contending on common paths it is better to do: 

	CPU #0                               CPU #1

	grab big lock                        spin
        do thing 
	release big lock ----> latency --->  grab big lock
					     do thing
        do other things                      ....


than to do 

 	grab small lock 1                    spin
	do small thing	
	release small lock 1 --> latency --> get small lock
                                             do small thing
                                             release lock
                            <--- latency --- 
        get small lock, fetch data
        do small thing
        release lock
                            ---> latency ---> get small lock
                                              do small thing
                                              release lock
                            <--- latency ----

etc. The latencies add up and they're long because they're bus limited.
For common paths it is definitely useful to have bigger lock sections. 

-Andi

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/

  reply	other threads:[~2000-10-27  7:46 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200010261405.XAA19135@asami.proc.flab.fujitsu.co.jp>
     [not found] ` <200010250736.QAA12373@asami.proc.flab.fujitsu.co.jp>
     [not found]   ` <Pine.LNX.4.21.0010251242050.943-100000@duckman.distro.conectiva>
     [not found]     ` <200010260138.KAA17028@asami.proc.flab.fujitsu.co.jp>
2000-10-27  6:24       ` Negative scalability by removal of lock_kernel()? (Was: " kumon
2000-10-27  6:32         ` Negative scalability by removal of lock_kernel()?(Was: " Jeff V. Merkey
2000-10-27  7:13           ` Alexander Viro
2000-10-27  7:46             ` Andi Kleen [this message]
2000-10-27 10:23               ` Andrew Morton
2000-10-27 10:25                 ` Andi Kleen
2000-10-27 12:57               ` [PATCH] " kumon
2000-10-28 15:46                 ` Andrew Morton
2000-10-28 15:58                   ` Andi Kleen
2000-10-28 16:05                   ` Jeff Garzik
2000-10-28 16:20                   ` [PATCH] Re: Negative scalability by removal of lock_kernel()?(Was: Alan Cox
2000-10-29 19:45                     ` dean gaudet
2000-10-30  6:29                       ` Andi Kleen
2000-10-30 15:28                         ` Andrea Arcangeli
2000-10-30 16:36                           ` Rik van Riel
2000-10-30 18:02                             ` Andrea Arcangeli
2000-10-28 16:46                   ` [PATCH] Re: Negative scalability by removal of lock_kernel()?(Was: Strange performance behavior of 2.4.0-test9) Andrew Morton
2000-10-30  9:27                   ` kumon
2000-10-30 15:00                     ` Andrew Morton
2000-10-30 23:24                       ` dean gaudet
2000-11-04  5:08                         ` [PATCH] Re: Negative scalability by removal of lock_kernel()?(Was:Strange " Andrew Morton
2000-11-04  6:23                           ` Linus Torvalds
2000-11-04 10:54                             ` [PATCH] Re: Negative scalability by removal of Alan Cox
2000-11-04 17:22                               ` Linus Torvalds
2000-11-05 16:22                                 ` Andrea Arcangeli
2000-11-05 20:21                               ` dean gaudet
2000-11-05 22:43                                 ` Alan Cox
2000-11-04 20:03                             ` [PATCH] Re: Negative scalability by removal of lock_kernel()?(Was:Strange performance behavior of 2.4.0-test9) dean gaudet
2000-11-04 20:42                               ` [PATCH] Re: Negative scalability by removal of lock_kernel()?(Was:Strange Alan Cox
2000-11-04 20:11                           ` [PATCH] Re: Negative scalability by removal of lock_kernel()?(Was:Strange performance behavior of 2.4.0-test9) dean gaudet
2000-11-04 20:43                             ` [PATCH] Re: Negative scalability by removal of lock_kernel()?(Was:Strange Alan Cox
2000-11-05  4:52                               ` dean gaudet
2000-10-31 15:36                 ` [PATCH] Re: Negative scalability by removal of lock_kernel()?(Was: Strange performance behavior of 2.4.0-test9) Andrew Morton
2000-11-02 12:50                   ` kumon
2000-11-01  1:02                 ` kumon
2000-11-02 11:09                 ` kumon
2000-11-04  5:07                   ` Andrew Morton
2000-10-27  8:17             ` Jeff V. Merkey
2000-11-04  5:55             ` Preemptive scheduling of woken-up processes kumon
2000-10-27 10:11           ` Negative scalability by removal of lock_kernel()?(Was: Strange performance behavior of 2.4.0-test9) kumon

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=20001027094613.A18382@gruyere.muc.suse.de \
    --to=ak@suse.de \
    --cc=jmerkey@timpanogas.org \
    --cc=kumon@flab.fujitsu.co.jp \
    --cc=linux-kernel@vger.kernel.org \
    --cc=riel@conectiva.com.br \
    --cc=viro@math.psu.edu \
    /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®