mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: kumon@flab.fujitsu.co.jp
To: kumon@flab.fujitsu.co.jp
Cc: Rik van Riel <riel@conectiva.com.br>, linux-kernel@vger.kernel.org
Cc: kumon@flab.fujitsu.co.jp
Subject: Negative scalability by removal of lock_kernel()? (Was: Strange performance behavior of 2.4.0-test9)
Date: Fri, 27 Oct 2000 15:24:07 +0900	[thread overview]
Message-ID: <200010270624.PAA22920@asami.proc.flab.fujitsu.co.jp> (raw)
In-Reply-To: <200010261405.XAA19135@asami.proc.flab.fujitsu.co.jp>
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>

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/

       reply	other threads:[~2000-10-27  6:24 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       ` kumon [this message]
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
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=200010270624.PAA22920@asami.proc.flab.fujitsu.co.jp \
    --to=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

all inboxes | Powered by JetHome®