From: "Jeff V. Merkey" <jmerkey@timpanogas.org>
To: kumon@flab.fujitsu.co.jp
Cc: 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 00:32:39 -0600 [thread overview]
Message-ID: <39F92187.A7621A09@timpanogas.org> (raw)
In-Reply-To: <200010250736.QAA12373@asami.proc.flab.fujitsu.co.jp> <Pine.LNX.4.21.0010251242050.943-100000@duckman.distro.conectiva> <200010260138.KAA17028@asami.proc.flab.fujitsu.co.jp> <200010261405.XAA19135@asami.proc.flab.fujitsu.co.jp> <200010270624.PAA22920@asami.proc.flab.fujitsu.co.jp>
Linux has lots of n-sqared linear list searches all over the place, and
there's a ton of spots I've seen it go linear by doing fine grained
manipulation of lock_kernel() [like in BLOCK.C in NWFS for sending async
IO to ll_rw_block()]. I could see where there would be many spots
where playing with this would cause problems.
2.5 will be better.
Jeff
kumon@flab.fujitsu.co.jp wrote:
>
> Finally, I found:
> Removal of lock_kernel in fs/fcntl.c causes the strange performance of
> 2.4.0-test9.
>
> The removal causes following negative scalability on Apache-1.3.9:
> * 8-way performance dropped to 60% of 4-way performance.
> * Adding lock_kernel() gains 2.4x performance on 8-way.
>
> This suggests some design malfunction exist in the fs-code.
>
> The lock_kernel() is removed in test9, as shown in below, then the
> strange behavior appeared.
>
> linux-2.4.0-test8/fs/fcntl.c:
> asmlinkage long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg)
> {
> struct file * filp;
> long err = -EBADF;
>
> filp = fget(fd);
> if (!filp)
> goto out;
>
> --> lock_kernel();
> err = do_fcntl(fd, cmd, arg, filp);
> --> unlock_kernel();
>
> fput(filp);
> out:
> return err;
> }
>
> Adding the lock_kernel()/unlock_kernel() to test9:fs/fcntl.c,
> The performance is restored,
> The number of task switch is reduced, and
> Positive scalability is observed.
>
> The lock region may be narrowed to around call of posix_lock_file()
> in fcntl_setlk() (fs/locks.c).
>
> I usually prefer removal of kernel_lock, but at this time,
> the removal severy struck the performance.
>
> Please give me suggestions..
>
> kumon@flab.fujitsu.co.jp writes:
> > kumon@flab.fujitsu.co.jp writes:
> > > Rik van Riel writes:
> > > > On Wed, 25 Oct 2000 kumon@flab.fujitsu.co.jp wrote:
> > > > > I found very odd performance behavior of 2.4.0-test9 on a large SMP
> > > > > server, and I want some clues to investigate it.
> > > > >
> > > > > 1) At the 8 cpu configuration, test9 shows extremely inferior
> > > > > performance.
> > > > > 2) on test8, 8-cpu configuration shows about 2/3 performance of 4-cpu.
> > > > ^^^^^ test9 ??
> >
> > IMHO, the modification of file-system code causes the weird
> > performance.
> >
> > Most of processes are slept at:
> > posix_lock_file()->locks_block_on()->interruptible_sleep_on_locks()
> >
> > We revert two of test9 files (fs/fcntl.c fs/flock.c), to the previous
> > version, the performance problem disappeared and it becomes to the
> > same level as test8.
> >
> > To narrow the problem, we measured performance of 3 configuration:
> > 1) test9 with test8 fs/fcntl.c, test8 fs/flock.c
> > 2) test9 with test8 fs/fcntl.c
> > 3) test9 with test8 fs/flock.c
> >
> > Only 3) shows the problem, so the main problem reside in fcntl.c (not
> > in flock.c).
> >
> > So it seems:
> > the web-server, apache-1.3.9 in the redhat-6.1, issues lots of fcntl
> > to the file and those fcntls collide each other, and the processes
> > are blocked.
> >
> >
> > What has happend to fcntl.c?
> >
> > --
> > Computer Systems Laboratory, Fujitsu Labs.
> > kumon@flab.fujitsu.co.jp
> -
> 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/
-
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/
next prev parent reply other threads:[~2000-10-27 6:36 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
[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>
[not found] ` <200010261405.XAA19135@asami.proc.flab.fujitsu.co.jp>
2000-10-27 6:24 ` Negative scalability by removal of lock_kernel()? (Was: Strange performance behavior of 2.4.0-test9) kumon
2000-10-27 6:32 ` Jeff V. Merkey [this message]
2000-10-27 7:13 ` Negative scalability by removal of lock_kernel()?(Was: " Alexander Viro
2000-10-27 7:46 ` Andi Kleen
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-01 1:02 ` kumon
2000-11-02 11:09 ` kumon
2000-11-02 12:50 ` kumon
2000-11-04 5:07 ` Andrew Morton
2000-10-27 8:17 ` Jeff V. Merkey
2000-10-27 10:11 ` kumon
2000-11-04 5:55 ` Preemptive scheduling of woken-up processes 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=39F92187.A7621A09@timpanogas.org \
--to=jmerkey@timpanogas.org \
--cc=kumon@flab.fujitsu.co.jp \
--cc=linux-kernel@vger.kernel.org \
--cc=riel@conectiva.com.br \
/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