From: "Stephen C. Tweedie" <sct@redhat.com>
To: Zlatko.Calusic@CARNet.hr
Cc: "Stephen C. Tweedie" <sct@redhat.com>,
"Eric W. Biederman" <ebiederm+eric@npwt.net>,
linux-mm@kvack.org
Subject: Re: More info: 2.1.108 page cache performance on low memory
Date: Thu, 23 Jul 1998 13:22:00 +0100 [thread overview]
Message-ID: <199807231222.NAA04748@dax.dcs.ed.ac.uk> (raw)
In-Reply-To: <87iukovq42.fsf@atlas.CARNet.hr>
Hi,
On 23 Jul 1998 12:06:05 +0200, Zlatko Calusic <Zlatko.Calusic@CARNet.hr>
said:
> Yes, I'm aware of lots of problems that would need to be resolved in
> order to get rid of buffer cache (probably just to reinvent it, as you
> said :)). But, then again, if I understand you completely, we will
> always have the buffer cache as it is implemented now?!
I don't see any pressing need to replace it. Changing the _management_
of the buffer cache, and doing things like modifying the file write
paths, are different issues which we probably should do.
Ultimately we need synchronised access to individual blocks of a block
device. We need something which can talk directly to the block device
drivers. Once you have that in place, with a suitable form of buffering
added, you have something that necessarily looks sufficiently like the
buffer cache that I can't see a need to get rid of the current one.
That doesn't mean we can't improve the current system, but improving and
replacing are two very different things.
> Non-page aligned filesystem metadata, really looks like a hard problem
> to solve without buffer cache mechanism, that's out of question, but
> is there any posibility that we will introduce some logic to use
> somewhat improved page cache with buffer head functionality (or
> similar) that will allow us to use page cache in similar way that we
> use buffer cache now?
We still need a way to go to the block device drivers. As you say, we
still need the buffer_head. We _already_ have a way of using
buffer_heads without full buffers allocated in the cache (the swapper
uses such temporary buffer_heads, for example). We also need mechanisms
for things like loop devices and RAID. There's a lot going on in the
buffer cache!
> Two days ago, I rebooted unpatched 2.1.110 with mem=32m, just to find
> it dead today:
> I left at cca 22:00h on Jul 21.
> Jul 21 22:16:43 atlas kernel: eth0: media is 100Mb/s full duplex.
> Jul 21 22:34:31 atlas kernel: eth0: Insufficient memory; nuking
> packet.
I've got a fix for some of the (serious) fragmentation problems in 110.
111-pre1 with the fixes is looking really, really good. Post with patch
to follow.
> My observations with low memory machines led me to conclusion that
> inode memory grows monotonically until it takes cca 1.5MB of
> unswappable memory. That is around half of usable memory on 5MB
> machine. You seconded that in private mail you sent me in January.
Does this still happen? My own tests show 110 behaving very much better
in this respect.
> Is there any possibility that we could use slab allocator for inode
> allocation/deallocation?
Yes. I'll have to benchmark to see how much better it gets, but (a) 110
seems to need it less anyway, and (b) it opens up a whole new pile of
synchronisation problems in fs/inode.c, which can currently make the
assumption that an inode structure can move lists but can never actually
die if the inode spinlock is dropped.
--Stephen
--
This is a majordomo managed list. To unsubscribe, send a message with
the body 'unsubscribe linux-mm me@address' to: majordomo@kvack.org
next prev parent reply other threads:[~1998-07-23 12:51 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-07-13 16:53 Stephen C. Tweedie
1998-07-13 18:08 ` Eric W. Biederman
1998-07-13 18:29 ` Zlatko Calusic
1998-07-14 17:32 ` Stephen C. Tweedie
1998-07-16 12:31 ` Zlatko Calusic
1998-07-14 17:30 ` Stephen C. Tweedie
1998-07-18 1:10 ` Eric W. Biederman
1998-07-18 13:28 ` Zlatko Calusic
1998-07-18 16:40 ` Eric W. Biederman
1998-07-20 9:15 ` Zlatko Calusic
1998-07-22 10:40 ` Stephen C. Tweedie
1998-07-23 10:06 ` Zlatko Calusic
1998-07-23 12:22 ` Stephen C. Tweedie [this message]
1998-07-23 14:07 ` Zlatko Calusic
1998-07-23 17:18 ` Stephen C. Tweedie
1998-07-23 19:33 ` Zlatko Calusic
1998-07-27 10:57 ` Stephen C. Tweedie
1998-07-26 14:49 ` Eric W Biederman
1998-07-27 11:02 ` Stephen C. Tweedie
1998-08-02 5:19 ` Eric W Biederman
1998-08-17 13:57 ` Stephen C. Tweedie
1998-08-17 15:35 ` Stephen C. Tweedie
1998-08-20 12:40 ` Eric W. Biederman
1998-07-20 15:58 ` Stephen C. Tweedie
1998-07-22 10:36 ` Stephen C. Tweedie
1998-07-22 18:01 ` Rik van Riel
1998-07-23 10:59 ` Stephen C. Tweedie
1998-07-22 10:33 ` Stephen C. Tweedie
1998-07-23 10:59 ` Zlatko Calusic
1998-07-23 12:23 ` Stephen C. Tweedie
1998-07-23 15:06 ` Zlatko Calusic
1998-07-23 15:17 ` Benjamin C.R. LaHaise
1998-07-23 15:25 ` Zlatko Calusic
1998-07-23 17:27 ` Benjamin C.R. LaHaise
1998-07-23 19:17 ` Dr. Werner Fink
1998-07-23 17:12 ` Stephen C. Tweedie
1998-07-23 17:42 ` Zlatko Calusic
1998-07-23 19:12 ` Dr. Werner Fink
1998-07-27 10:40 ` Stephen C. Tweedie
1998-07-23 19:51 ` Rik van Riel
1998-07-24 11:21 ` Zlatko Calusic
1998-07-24 14:25 ` Rik van Riel
1998-07-24 17:01 ` Zlatko Calusic
1998-07-24 21:55 ` Rik van Riel
1998-07-25 13:05 ` Zlatko Calusic
1998-07-27 10:54 ` Stephen C. Tweedie
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=199807231222.NAA04748@dax.dcs.ed.ac.uk \
--to=sct@redhat.com \
--cc=Zlatko.Calusic@CARNet.hr \
--cc=ebiederm+eric@npwt.net \
--cc=linux-mm@kvack.org \
/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