public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: Andrew Morton <akpm@zip.com.au>
Cc: Arjan van de Ven <arjan@fenrus.demon.nl>,
	Rik van Riel <riel@conectiva.com.br>,
	linux-kernel@vger.kernel.org
Subject: Re: 2.4.19pre1aa1
Date: Wed, 6 Mar 2002 00:37:50 +0100	[thread overview]
Message-ID: <20020306003750.Q20606@dualathlon.random> (raw)
In-Reply-To: <20020305161032.F20606@dualathlon.random> <Pine.LNX.4.44L.0203051354590.1413-100000@duckman.distro.conectiva> <20020305192604.J20606@dualathlon.random>, <20020305192604.J20606@dualathlon.random>; <20020305183053.A27064@fenrus.demon.nl> <3C8518AE.B44AF2D5@zip.com.au> <20020306000314.M20606@dualathlon.random>, <20020306000314.M20606@dualathlon.random> <20020306000532.N20606@dualathlon.random> <3C8553C1.5E296978@zip.com.au>
In-Reply-To: <3C8553C1.5E296978@zip.com.au>

On Tue, Mar 05, 2002 at 03:24:49PM -0800, Andrew Morton wrote:
> Andrea Arcangeli wrote:
> > 
> > BTW, I noticed one of my last my email was a private reply so I'll
> > answer here too for the buffer_head pagecache I/O part:
> 
> Heh.  Me too.
>  
> > Having persistence on the physical I/O information is a good thing, so
> > you don't need to resolve logical to physical block at every I/O and bio
> > has a cost to setup too. The information we carry on the bh isn't
> > superflous, it's needed for the I/O so even if you don't use the
> > buffer_head you will still need some other memory to hold such
> > information, or alternatively you need to call get_block (and serialize
> > in the fs) at every I/O even if you've plenty of ram free. So I don't
> > think the current setup is that stupid, current bh only sucks for the
> > rawio and that's fixed by bio.
> 
> The small benefit of caching the get_block result in the buffers
> just isn't worth it.
> 
> At present, a one-megabyte write to disk requires the allocation
> and freeing and manipulation and locking of 256 buffer_heads and
> 256 BIOs.  lru_list_lock, hash_table_lock, icache/dcache
> thrashing, etc, etc.   It's an *enormous* amount of work.
> 
> I'm doing the same amount of work with as few as two (yes, 2) BIOs.
> 
> This is not something theoretical.  I have numbers, and code.
> 20% speedup on a 2-way with a workload which is dominated
> by copy_*_user.  It'll be more significant on larger machines,
> on machines with higher core/main memory speed ratios, on
> machines with higher I/O bandwidth. (OK, that bit was theoretical).

then let's cut and paste this part as well :)

depends what you're doing, if you do `cp /dev/zero .` and the fs is
lucky enough to have free contigous space I definitely can see the
improvement of highlevel merging, but that's not always what you're
doing with the fs, for example that's not the case for kernel compiles
and small files where you'll be always fragmented and where the bio will
at max hold 4k and you keep rewriting into cache. The times you enter
get_block you enter in a fs lock, rather than staying at the per-page
lock, it's not additional locking, the bh on the pagecahce doesn't need
any additional locking. So for a kernel compile the current situation is
an obvious advantage in performance and scalability (fs code definitely
doesn't scale at the moment).

But ok, globally it will be probably better to drop the bh since we have
to work on the bio anyways somehow and so at the very least we don't
want to be slowed down from the bio logic in the physically contigous
pagecache flood case.

I just meant the bh isn't totally pointless and it could be shrunk as
Arjan said in a private email.

Andrea

  reply	other threads:[~2002-03-05 23:37 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-02-27 12:50 2.4.19pre1aa1 Andrea Arcangeli
2002-02-28 22:11 ` 2.4.19pre1aa1 Bill Davidsen
2002-03-01  1:30   ` 2.4.19pre1aa1 Mike Fedyk
2002-03-01  3:26     ` 2.4.19pre1aa1 Bill Davidsen
2002-03-01  3:46       ` 2.4.19pre1aa1 Mike Fedyk
2002-03-01 12:51         ` 2.4.19pre1aa1 Rik van Riel
2002-03-01 18:37           ` 2.4.19pre1aa1 Mike Fedyk
2002-03-01 10:17       ` 2.4.19pre1aa1 Marco Colombo
2002-03-01 11:37         ` 2.4.19pre1aa1 Alan Cox
2002-03-02  2:06       ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-02  2:28         ` 2.4.19pre1aa1 Alan Cox
2002-03-02  3:30           ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-03 21:38         ` 2.4.19pre1aa1 Daniel Phillips
2002-03-04  0:49           ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-04  1:46             ` 2.4.19pre1aa1 Daniel Phillips
2002-03-04  2:25               ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-04  3:22                 ` 2.4.19pre1aa1 Daniel Phillips
2002-03-04 12:41                 ` 2.4.19pre1aa1 Rik van Riel
2002-03-04 14:05                   ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-04 14:23                     ` 2.4.19pre1aa1 Rik van Riel
2002-03-04 16:10                       ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-04 16:28                         ` 2.4.19pre1aa1 Rik van Riel
2002-03-04 16:59                       ` 2.4.19pre1aa1 Martin J. Bligh
2002-03-04 18:18                         ` 2.4.19pre1aa1 Stephan von Krawczynski
2002-03-04 18:41                           ` 2.4.19pre1aa1 Stephan von Krawczynski
2002-03-04 18:46                           ` 2.4.19pre1aa1 Martin J. Bligh
2002-03-04 22:06                             ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-04 23:03                               ` 2.4.19pre1aa1 Samuel Ortiz
2002-03-05 11:23                                 ` 2.4.19pre1aa1 Stephan von Krawczynski
2002-03-05 17:35                                   ` 2.4.19pre1aa1 Samuel Ortiz
2002-03-05  0:12                               ` 2.4.19pre1aa1 Rik van Riel
2002-03-05  6:21                               ` 2.4.19pre1aa1 Martin J. Bligh
2002-03-04 21:37                           ` 2.4.19pre1aa1 Rik van Riel
2002-03-04 18:19                         ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-04 18:56                           ` 2.4.19pre1aa1 Martin J. Bligh
2002-03-04 22:25                             ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-04 23:09                               ` 2.4.19pre1aa1 Gerrit Huizenga
2002-03-05  0:19                                 ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-05  2:00                                   ` 2.4.19pre1aa1 Gerrit Huizenga
2002-03-04 22:38                             ` 2.4.19pre1aa1 Daniel Phillips
2002-03-04 21:36                           ` 2.4.19pre1aa1 Rik van Riel
2002-03-04 23:01                             ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-04 23:11                               ` 2.4.19pre1aa1 Rik van Riel
2002-03-04 23:52                                 ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-05  0:01                                   ` 2.4.19pre1aa1 Rik van Riel
2002-03-05  1:05                                     ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-05  1:26                                       ` 2.4.19pre1aa1 Rik van Riel
2002-03-05  1:40                                         ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-05  1:55                                           ` 2.4.19pre1aa1 Martin J. Bligh
2002-03-05  5:16                                             ` 2.4.19pre1aa1 Samuel Ortiz
2002-03-05  5:47                                               ` 2.4.19pre1aa1 Martin J. Bligh
2002-03-05  6:33                                                 ` 2.4.19pre1aa1 Samuel Ortiz
2002-03-05 12:22                                           ` 2.4.19pre1aa1 Rik van Riel
2002-03-05 15:01                                             ` 2.4.19pre1aa1 Andrea Arcangeli
     [not found]                                             ` <Pine.LNX.4.44L.0203050921510.1413-100000@duckman.distro.conecti va>
2002-03-05 15:29                                               ` 2.4.19pre1aa1 Martin J. Bligh
2002-03-05 15:43                                                 ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-05  3:05                                         ` 2.4.19pre1aa1 Bill Davidsen
2002-03-05  8:35                                   ` 2.4.19pre1aa1 arjan
2002-03-05 12:41                                     ` 2.4.19pre1aa1 Rik van Riel
2002-03-05 15:10                                       ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-05 16:57                                         ` 2.4.19pre1aa1 Rik van Riel
2002-03-05 18:26                                           ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-05 18:30                                             ` 2.4.19pre1aa1 Arjan van de Ven
2002-03-05 19:12                                               ` 2.4.19pre1aa1 Andrew Morton
2002-03-05 23:03                                                 ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-05 23:05                                                   ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-05 23:24                                                     ` 2.4.19pre1aa1 Andrew Morton
2002-03-05 23:37                                                       ` Andrea Arcangeli [this message]
2002-03-05 23:51                                                         ` 2.4.19pre1aa1 Andrew Morton
2002-03-06  0:09                                       ` 2.4.19pre1aa1 Daniel Phillips
2002-03-05 14:55                                     ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-05  5:38                               ` 2.4.19pre1aa1 Martin J. Bligh
2002-03-05  6:45                                 ` 2.4.19pre1aa1 David Lang
     [not found]       ` <200203021958.g22JwKq08818@Port.imtp.ilyichevsk.odessa.ua>
2002-03-02 20:47         ` 2.4.19pre1aa1 Andrea Arcangeli
2002-03-02 20:58           ` 2.4.19pre1aa1 Robert Love
2002-03-05 22:16             ` 2.4.19pre1aa1 Bill Davidsen
  -- strict thread matches above, loose matches on Subject: below --
2002-02-28  2:57 2.4.19pre1aa1 rwhron

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=20020306003750.Q20606@dualathlon.random \
    --to=andrea@suse.de \
    --cc=akpm@zip.com.au \
    --cc=arjan@fenrus.demon.nl \
    --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