mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Richard Gooch <rgooch@ras.ucalgary.ca>
To: Larry McVoy <lm@bitmover.com>
Cc: Linus Torvalds <torvalds@transmeta.com>,
	Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: Getting FS access events
Date: Sun, 13 May 2001 20:39:23 -0600	[thread overview]
Message-ID: <200105140239.f4E2dNd08399@vindaloo.ras.ucalgary.ca> (raw)
In-Reply-To: <20010513184509.P2103@work.bitmover.com>
In-Reply-To: <200105140117.f4E1HqN07362@vindaloo.ras.ucalgary.ca> <Pine.LNX.4.21.0105131824090.20981-100000@penguin.transmeta.com> <20010513184509.P2103@work.bitmover.com>

Larry McVoy writes:
> On Sun, May 13, 2001 at 06:32:02PM -0700, Linus Torvalds wrote:
> > >   Hi, Linus. I've been thinking more about trying to warm the page
> > > cache with blocks needed by the bootup process. What is currently
> > > missing is (AFAIK) a mechanism to find out what inodes and blocks have
> > > been accessed. Sure, you can use bmap() to convert from file block to
> > > device block, but first you need to figure out the file blocks
> > > accessed. I'd like to find out what kind of patch you'd accept to
> > > provide the missing functionality.
> > 
> > Why would you use bmap() anyway? You CANNOT warm up the page cache with
> > the physical map nr as discussed. So there's no real point in using
> > bmap() at any time.
> 
> Ha.  For once you're both wrong but not where you are thinking.  One
> of the few places that I actually hacked Linux was for exactly this
> - it was in the 0.99 days I think.  I saved the list of I/O's in a
> file and filled the buffer cache with them at next boot.  It
> actually didn't help at all.

Maybe you did something wrong :-) Seriously, maybe you're right, and
maybe not. I'd like to find out, and having the infrastructure to get
FS access events will help in that (as well as your preferred
approach: see below). If I am digging into a rathole, I'll do it with
my eyese open ;-)

> I don't remember why, maybe it was back so long ago that I didn't
> have the memory, but I think it was more subtle than that.  It's
> basically a queuing problem and my instincts were wrong, I thought
> if I could get all the data in there then things would go faster.
> If you think through all the stuff going on during a boot it doesn't
> really work that way.

Well, on my machines anyway, the discs rattle an awful lot during
bootup. Not just little adjacent seeks, but big, partition crossing
seeks.

> Anyway, a _much_ better thing to do would be to have all this data
> laid out contig, then slurp in all the blocks in on I/O and then let
> them get turned into files.  This has been true for the last 30
> years and people still don't do it.  We're actually moving in this
> direction with BitKeeper, in the future, large numbers of small
> files will be stored in one big file and extracted on demand.  Then
> we do one I/O to get all the related stuff.

Yeah, we need a decent unfragmenter. We can do that now with bmap().
But to speed up boots, for example, we need to lay all the inodes that
are accessed during boot in one contiguous chunk on the disc. Again,
we need to know which files are being accessed to know that.
/proc/fsaccess would tell us that.

The down side of just relying on contiguous files is that some files
(especially bloated C libraries) are not fully used. I would not be at
all surprised if more than 75% of glibc is not (or rarely) used.
There's a lot of stuff in there that isn't used very often.

However, a *refragmenter* might be interesting. Find out which blocks
in which files are actually used during boot, and lay just those out
in a contiguous section. *That* would smoke!

				Regards,

					Richard....
Permanent: rgooch@atnf.csiro.au
Current:   rgooch@ras.ucalgary.ca

  parent reply	other threads:[~2001-05-14  2:39 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200105140117.f4E1HqN07362@vindaloo.ras.ucalgary.ca>
2001-05-14  1:32 ` Linus Torvalds
2001-05-14  1:45   ` Larry McVoy
2001-05-14  2:39   ` Richard Gooch [this message]
2001-05-14  3:09     ` Rik van Riel
2001-05-14  4:27     ` Richard Gooch
2001-05-15  4:37     ` Chris Wedgwood
2001-05-23 11:37       ` Stephen C. Tweedie
2001-05-14  2:24 ` Richard Gooch
2001-05-14  4:46   ` Linus Torvalds
2001-05-14  5:15   ` Richard Gooch
2001-05-14 13:04     ` Daniel Phillips
2001-05-14 18:00       ` Andreas Dilger
2001-05-14 20:16     ` Linus Torvalds
2001-05-14 23:19     ` Richard Gooch
2001-05-15  0:42       ` Daniel Phillips
2001-05-15  4:00       ` Linus Torvalds
2001-05-15  4:35         ` Larry McVoy
2001-05-15  4:59           ` Alexander Viro
2001-05-15 17:01             ` Pavel Machek
2001-05-15  4:43         ` Linus Torvalds
2001-05-15  5:04           ` Alexander Viro
2001-05-15 16:17           ` Pavel Machek
2001-05-19 19:39             ` Linus Torvalds
2001-05-19 19:44               ` Pavel Machek
2001-05-19 19:47                 ` Linus Torvalds
2001-05-23 11:29                   ` Stephen C. Tweedie
2001-05-20  4:30               ` Chris Wedgwood
2001-05-20 19:47                 ` Alan Cox
2001-05-18  7:55           ` Rogier Wolff
2001-05-23 11:36             ` Stephen C. Tweedie
2001-05-15  4:57         ` David S. Miller
2001-05-15  5:12           ` Alexander Viro
2001-05-15  9:10           ` Alan Cox
2001-05-15  9:48             ` Lars Brinkhoff
2001-05-15  9:54               ` Alexander Viro
2001-05-15 20:17               ` Kai Henningsen
2001-05-15 20:58                 ` Alexander Viro
2001-05-15 21:08                   ` Alexander Viro
2001-05-15  6:20         ` Richard Gooch
2001-05-15  6:28           ` Linus Torvalds
2001-05-15  6:49           ` Richard Gooch
2001-05-15  6:57             ` Alexander Viro
2001-05-15 10:33               ` Daniel Phillips
2001-05-15 10:44                 ` Alexander Viro
2001-05-15 14:42                   ` Daniel Phillips
2001-05-15  7:13             ` Linus Torvalds
2001-05-15  7:56               ` Chris Wedgwood
2001-05-15  8:06                 ` Linus Torvalds
2001-05-15  8:33                   ` Alexander Viro
2001-05-15 10:27                     ` David Woodhouse
2001-05-15 16:00                     ` Chris Mason
2001-05-15 19:26                     ` H. Peter Anvin
2001-05-15 20:03                       ` Alexander Viro
2001-05-15 20:07                         ` H. Peter Anvin
2001-05-15 20:15                           ` Alexander Viro
2001-05-15 20:17                             ` H. Peter Anvin
2001-05-15 20:22                               ` Alexander Viro
2001-05-15 20:26                                 ` H. Peter Anvin
2001-05-15 20:31                                   ` Alexander Viro
2001-05-15 21:12                                     ` Linus Torvalds
2001-05-15 21:22                                     ` H. Peter Anvin
2001-05-15 21:02                                 ` Linus Torvalds
2001-05-15 21:53                                   ` Jan Harkes
2001-05-19  5:26                   ` Chris Wedgwood
2001-05-15 10:04             ` Anton Altaparmakov
2001-05-15 19:28               ` H. Peter Anvin
2001-05-15 22:31                 ` Albert D. Cahalan
2001-05-15 22:35                   ` H. Peter Anvin
2001-05-16  1:17                   ` Anton Altaparmakov
2001-05-16  1:30                     ` H. Peter Anvin
2001-05-16  8:34                     ` Anton Altaparmakov
2001-05-16 16:27                       ` H. Peter Anvin
2001-05-15 16:26             ` Pavel Machek
2001-05-15 18:02             ` Craig Milo Rogers
2001-05-15  6:13       ` Richard Gooch

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=200105140239.f4E2dNd08399@vindaloo.ras.ucalgary.ca \
    --to=rgooch@ras.ucalgary.ca \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lm@bitmover.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

all inboxes | Powered by JetHome®