linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: "Benjamin C.R. LaHaise" <blah@kvack.org>
To: Andrea Arcangeli <andrea@suse.de>
Cc: "Stephen C. Tweedie" <sct@redhat.com>,
	Chris Mason <clmsys@osfmail.isc.rit.edu>,
	reiserfs@devlinux.com, linux-fsdevel@vger.rutgers.edu,
	linux-mm@kvack.org, Ingo Molnar <mingo@redhat.com>,
	Linus Torvalds <torvalds@transmeta.com>
Subject: Re: RFC: Re: journal ports for 2.3?
Date: Tue, 21 Dec 1999 20:21:05 -0500 (EST)	[thread overview]
Message-ID: <Pine.LNX.3.96.991221200955.16115B-100000@kanga.kvack.org> (raw)
In-Reply-To: <Pine.LNX.4.21.9912211056520.24670-100000@Fibonacci.suse.de>

On Tue, 21 Dec 1999, Andrea Arcangeli wrote:

> On Tue, 21 Dec 1999, Stephen C. Tweedie wrote:
> 
> >    refile_buffer() checks in buffer.c.  Ideally there should be a
> >    system-wide upper bound on dirty data: if each different filesystem
> >    starts to throttle writes at 50% of physical memory then you only
> >    need two different filesystems to overcommit your memory badly.
> 
> If all FSes shares the dirty list of buffer.c that's not true. All normal
> filesystems are using the mark_buffer_dirty() in buffer.c so currently the
> 40% setting of bdflush is a system-wide number and not a per-fs number.

The buffer dirty lists are the wrong place to be dealing with this.  We
need a lightweight, fast way of monitoring the system's dirty buffer/page
thresholds -- one that can be called for every write to a page or on the
write faults for cow pages.

> >    same time.  Making the refile_buffer() checks honour that global
> >    threshold would be trivial.  
> 
> If both ext3 and reiserfs are using refile_buffer and both are using
> balance_dirty in the right places as Linus wants, all seems just fine to
> me.
> 
> I disagree since 2.3.10 (or similar) about mark_buffer_dirty not including
> the balance_dirty() check (and I just provided patches to fix that some
> month ago IIRC). Last time I checked ext2 was harmed by this, and we'll
> have to add the proper balance_dirty() in the ext2 mknod path and check
> the rest.

> I completly agree to change mark_buffer_dirty() to call balance_dirty()
> before returning. But if you add the balance_dirty() calls all over the
> right places all should be _just_ fine as far I can tell.

I don't agree, both for the reasons above and because doing a
balance_dirty in mark_buffer_dirty tends to result in stalls in the
*wrong* place, because it tends to stall in the middle of an operation,
not before it has begun.  You end up stalling on metadata operations that
shouldn't stall.  The stall thresholds for data vs metadata have to be
different in order to make the system 'feel' right.  This is easily
accomplished by trying to "allocate" the dirty buffers before you actually
dirty them (by checking if there's enough slack in the dirty buffer
margins before doing the operation).

		-ben

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.nl.linux.org/Linux-MM/

  parent reply	other threads:[~1999-12-22  1:21 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <000c01bf472c$8ad8cb60$8edb1581@isc.rit.edu>
1999-12-21  0:24 ` Stephen C. Tweedie
1999-12-21 10:18   ` Andrea Arcangeli
1999-12-21 13:21     ` (reiserfs) " Stephen C. Tweedie
1999-12-21 13:57       ` Andrea Arcangeli
1999-12-22  0:28         ` Stephen C. Tweedie
1999-12-23 11:51           ` Hans Reiser
1999-12-22 23:37       ` Hans Reiser
2000-01-06 17:48         ` Stephen C. Tweedie
2000-01-06 18:20           ` Andrea Arcangeli
2000-01-06 21:32             ` Hans Reiser
2000-01-07 11:51               ` Stephen C. Tweedie
2000-01-07 12:46                 ` Andrea Arcangeli
2000-01-07 19:59                 ` Hans Reiser
1999-12-22  1:21     ` Benjamin C.R. LaHaise [this message]
1999-12-22 22:19       ` Stephen C. Tweedie
1999-12-22 22:41         ` (reiserfs) " Tan Pong Heng
1999-12-23  3:27           ` William J. Earl
1999-12-23 15:36             ` Andrea Arcangeli
1999-12-24  5:53               ` afei
1999-12-26  8:26               ` feiliu
2000-01-02 22:24                 ` Peter J. Braam
2000-01-05 13:02                   ` (reiserfs) Re: RFC: Re: journal ports for 2.3? (resending because my ISP probably lost it) Hans Reiser
2000-01-05 15:22                     ` Peter J. Braam
2000-01-05 15:37                       ` Tigran Aivazian
2000-01-06  8:40                         ` Hans Reiser
2000-01-05 15:50                       ` Chris Mason
2000-01-06  8:34                       ` (reiserfs) Re: RFC: Re: journal ports for 2.3? (resendingbecause " Hans Reiser
2000-01-07  1:25                         ` (reiserfs) Re: RFC: Re: journal ports for 2.3? (resendingbecause my Albert D. Cahalan
2000-01-07 11:37                           ` Stephen C. Tweedie
2000-01-06 17:54           ` (reiserfs) Re: RFC: Re: journal ports for 2.3? Stephen C. Tweedie
1999-12-23 12:02       ` Hans Reiser
1999-12-23 15:49         ` Andrea Arcangeli
1999-12-23 16:41           ` Hans Reiser
1999-12-27 16:31       ` Andrea Arcangeli

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=Pine.LNX.3.96.991221200955.16115B-100000@kanga.kvack.org \
    --to=blah@kvack.org \
    --cc=andrea@suse.de \
    --cc=clmsys@osfmail.isc.rit.edu \
    --cc=linux-fsdevel@vger.rutgers.edu \
    --cc=linux-mm@kvack.org \
    --cc=mingo@redhat.com \
    --cc=reiserfs@devlinux.com \
    --cc=sct@redhat.com \
    --cc=torvalds@transmeta.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