From: Andrea Arcangeli <andrea@suse.de>
To: "Benjamin C.R. LaHaise" <blah@kvack.org>
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: Mon, 27 Dec 1999 17:31:58 +0100 (CET) [thread overview]
Message-ID: <Pine.LNX.4.10.9912271708240.335-100000@alpha.random> (raw)
In-Reply-To: <Pine.LNX.3.96.991221200955.16115B-100000@kanga.kvack.org>
On Tue, 21 Dec 1999, Benjamin C.R. LaHaise wrote:
>The buffer dirty lists are the wrong place to be dealing with this. We
The only reason for not using buffer.c is to make sure to not insert bugs
in such file.
>need a lightweight, fast way of monitoring the system's dirty buffer/page
The lightweight/fastway is a counter and we just have it. You only want to
split it in two parts.
Actually I am not completly against splitting into two parts. Note that my
reply was just to make clear that there is _just_ this "monitoring"
counter. The "need of two filesystem" to exploit the problem showed you at
least partially misunderstood the current code and so I explained how
thing works right now.
>thresholds -- one that can be called for every write to a page or on the
>write faults for cow pages.
The cow write faults have really nothing to do with this. In a cow both
the old page is clean and can be unmapped and the copy is anonymous and
can be swapped out so nothing is unfreeable there.
>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,
It's always the *wrong* place because every balance_dirty tends to stall
in the middle of an operation.
Try to copy data in 2.3.x and you'll stall in the middle of the
block_*write* stuff. Do you suggest to remove the balance_dirty() from
there as well so the code won't stall?
>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
If you don't want to stall there then buy a faster harddisk so all the
metadata writes will be done async.
If you generate 1 gigabyte of dirty data in 1 sec and you only have
10mbyte of RAM, then you _must_ stall or you'll go OOM. You choose to go
OOM and that's definitely a very bad design bug.
>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
How can you make a buffer dirty without first allocate it? I'd like to
know.
>margins before doing the operation).
This make no sense at all to me. Sorry.
The only two reasons for not calling balance_dirty() inside
mark_buffer_dirty() are:
o it was not possible to call balance_dirty() at mark_buffer_dirty()
time, because it happened inside an atomical critical section.
o you are going to mark a couple of buffer dirty at the same time
(see block_write_full_page for example) and so you want to
coalesce four balance_dirty() in one balance_dirty() to improve
performances.
Both cases make perfect sense and I sure agree we need to be able to do
that. But (silenty) breaking all old fs to do the above two things is very
silly IMHO.
I am not doing a new patch because the first one is just been rejected
(with explicit commentary) some month ago.
Andrea
--
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/
prev parent reply other threads:[~1999-12-27 16:31 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
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 [this message]
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.4.10.9912271708240.335-100000@alpha.random \
--to=andrea@suse.de \
--cc=blah@kvack.org \
--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