mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Daniel Phillips <phillips@innominate.de>
To: Chris Mason <mason@suse.com>, linux-kernel@vger.kernel.org
Subject: Re: [RFC] changes to buffer.c (was Test12 ll_rw_block error)
Date: Wed, 27 Dec 2000 21:26:02 +0100	[thread overview]
Message-ID: <3A4A505A.3CF8A8BB@innominate.de> (raw)
In-Reply-To: <Pine.LNX.4.21.0012221730270.3382-100000@freak.distro.conectiva> <37610000.977878627@coffee>

Chris Mason wrote:
> 
> Hi guys,
> 
> Here's my latest code, which uses ll_rw_block for anon pages (or
> pages without a writepage func) when flush_dirty_buffers,
> sync_buffers, or fsync_inode_buffers are flushing things.  This
> seems to have fixed my slowdown on 1k buffer sizes, but I
> haven't done extensive benchmarks yet.
> 
> Other changes:  After freeing a page with buffers, page_launder
> now stops if (!free_shortage()).  This is a mod of the check where
> page_launder checked free_shortage after freeing a buffer cache
> page.  Code outside buffer.c can't detect buffer cache pages with
> this patch, so the old check doesn't apply.
> 
> My change doesn't seem quite right though, if page_launder wants
> to stop when there isn't a shortage, it should do that regardless of
> if the page it just freed had buffers.  It looks like this was added
> so bdflush could call page_launder, and get an early out after
> freeing some buffer heads, but I'm not sure.
> 
> In test13-pre4, invalidate_buffers skips buffers on a page
> with a mapping.  I changed that to skip mappings other than the
> anon space mapping.
> 
> Comments and/or suggestions on how to make better use of this stuff
> are more than welcome ;-)

Hi Chris.  I took your patch for a test drive under dbench and it seems
impressively stable under load, but there are performance problems.

	Test machine: 64 meg, 500 Mhz K6, IDE, Ext2, Blocksize=4K
	Without patch: 9.5 MB/sec, 11 min 6 secs
	With patch: 3.12 MB/sec, 33 min 51 sec

Philosophically, I wonder if it's right for the buffer flush mechanism
to be calling into the filesystem.  It seems like the buffer lists
should stay sitting between the filesystem and the block layer, it
actually does a pretty good job.

What about just bumping the buffers of pages found on the inactive_dirty
list to the front of the buffer LRU list?  Then we can do write
clustering by being selective about the bumping.
 
--
Daniel
-
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/

  parent reply	other threads:[~2000-12-27 20:59 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <3A398F84.2CD3039D@thebarn.com>
2000-12-15  6:20 ` Test12 ll_rw_block error Linus Torvalds
2000-12-15  7:00   ` Alexander Viro
2000-12-15  9:14     ` Chris Mason
2000-12-17  0:54       ` Russell Cattelan
2000-12-17 12:20         ` Chris Mason
2000-12-15 10:51     ` Stephen C. Tweedie
2000-12-15 19:04       ` Linus Torvalds
2000-12-17  1:08       ` Russell Cattelan
2000-12-18 11:44         ` Stephen C. Tweedie
2000-12-17  2:38       ` Marcelo Tosatti
2000-12-18 11:46         ` Stephen C. Tweedie
2000-12-19 14:05           ` Marcelo Tosatti
2000-12-19 16:43             ` Daniel Phillips
2000-12-19 17:18               ` Marcelo Tosatti
2000-12-19 17:40               ` Christoph Hellwig
2000-12-21 23:25           ` [RFC] changes to buffer.c (was Test12 ll_rw_block error) Chris Mason
2000-12-22  0:19             ` Marcelo Tosatti
2000-12-22  2:20               ` Andreas Dilger
2000-12-22  0:38                 ` Marcelo Tosatti
2000-12-22 13:56                   ` Chris Mason
2000-12-22 16:45                     ` Daniel Phillips
2000-12-22 19:35                       ` Chris Mason
2000-12-22 15:07                   ` Chris Mason
2000-12-22 19:52                     ` Marcelo Tosatti
2000-12-22 23:18                       ` Chris Mason
2000-12-22 23:26                         ` Marcelo Tosatti
2000-12-23 18:21                           ` Chris Mason
2000-12-23 19:02                             ` Linus Torvalds
2000-12-23 19:25                               ` Chris Mason
2000-12-23 15:47                         ` Daniel Phillips
2000-12-27  0:57                       ` Chris Mason
2000-12-26 23:18                         ` Marcelo Tosatti
2000-12-27 20:26                         ` Daniel Phillips [this message]
2000-12-27 20:49                           ` Chris Mason
2000-12-28 15:49                             ` Daniel Phillips
2000-12-28 19:19                               ` Chris Mason
2000-12-28 19:29                                 ` Linus Torvalds
2000-12-29 16:03                                   ` Chris Mason
2000-12-29 16:21                                     ` Marcelo Tosatti
2000-12-29 18:33                                       ` Alexander Viro
2001-01-05 15:54                                         ` Chris Mason
2001-01-05 15:43                                           ` Marcelo Tosatti
2001-01-05 17:49                                             ` Daniel Phillips
2001-01-05 17:52                                             ` Chris Mason
2001-01-05 19:51                                             ` Chris Mason
2001-01-05 18:32                                               ` Marcelo Tosatti
2001-01-05 20:29                                                 ` Rik van Riel
2001-01-05 18:43                                                   ` Marcelo Tosatti
2001-01-05 20:37                                                     ` Rik van Riel
2001-01-05 21:08                                                 ` Chris Mason
2001-01-05 18:09                                           ` Juergen Schneider
2000-12-29 17:58                                     ` Daniel Phillips
2001-01-02 15:49                                       ` Chris Mason
2000-12-22  1:54             ` Alexander Viro
2000-12-22 13:49               ` Chris Mason
2000-12-17  0:51     ` Test12 ll_rw_block error Russell Cattelan
2000-12-17  0:21   ` Russell Cattelan

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=3A4A505A.3CF8A8BB@innominate.de \
    --to=phillips@innominate.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mason@suse.com \
    /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®