public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@digeo.com>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: andersen@codepoet.org, Jamie Lokier <lk@tantalophile.demon.co.uk>,
	Mark Mielke <mark@mark.mielke.cc>,
	Giuliano Pochini <pochini@denise.shiny.it>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: O_STREAMING has insufficient info - how about fadvise() ?
Date: Thu, 10 Oct 2002 08:34:05 -0700	[thread overview]
Message-ID: <3DA59DED.6167C13B@digeo.com> (raw)
In-Reply-To: 1034249932.2044.128.camel@irongate.swansea.linux.org.uk

Alan Cox wrote:
> 
> ...
> Instead of O_STREAMING therefore I'd much prefer to have
> 
>         fadvise(filehandle, offset, length, FADV_DONTNEED);

fadvise would make some sense - nice that it's a standardised interface.

It isn't really implementable in 2.4, because of that "offset, length"
thing.  We either have to do a pagecache probe for each page, which
gets painful if the user asked for 10,000,000 pages or we do a
pagelist walk which is painful if the user asked for one page.

In 2.5, the radix tree gang lookup thing will do this search in O(zilch).

The other problem with fadvise is writebehind - there are up to
30 seconds' worth of dirty pages behind the application's write
cursor which fadvise wouldn't be able to do anything with.  So
the application would end up running fadvise(offset=0, length=current-pos)
all the time.   Which is equivalent to O_STREAMING.
 

dropbehind cannot work as effectively because we're basically forced
to put the pages at the head of the inactive LRU and hope that they're
written before they reach the tail.  By which time we've evicted
all the other pagecache on the inactive list.

Could put the pages at the _tail_ of the LRU for reads; but that's
equivalent to just reclaiming them on the spot.  Which is equivalent
to O_STREAMING.

  parent reply	other threads:[~2002-10-10 15:28 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-10-08  2:38 [PATCH] O_STREAMING - flag for optimal streaming I/O Robert Love
2002-10-08 10:42 ` J.A. Magallon
2002-10-08 18:08   ` Robert Love
2002-10-08 18:38 ` Chris Wedgwood
2002-10-08 18:49   ` Robert Love
2002-10-08 19:05     ` Chris Wedgwood
2002-10-08 19:17       ` Robert Love
2002-10-08 19:30         ` Andrew Morton
2002-10-09 14:14           ` Marco Colombo
2002-10-09 16:30           ` kernel
2002-10-08 19:52         ` Chris Wedgwood
2002-10-08 19:59           ` Robert Love
2002-10-08 20:01             ` Chris Wedgwood
2002-10-09  8:33         ` Giuliano Pochini
2002-10-09  8:43           ` Andrew Morton
2002-10-09 10:55             ` Giuliano Pochini
2002-10-09 17:05           ` Mark Mielke
2002-10-09 19:36             ` Giuliano Pochini
2002-10-09 22:24               ` Mark Mielke
2002-10-09 23:20                 ` Jamie Lokier
2002-10-10  3:07                   ` Mark Mielke
2002-10-10 10:55                     ` Helge Hafting
2002-10-10 17:50                       ` Mark Mielke
2002-10-10  3:29                   ` Erik Andersen
2002-10-10  3:37                     ` Robert Love
2002-10-10 13:39                       ` Giuliano Pochini
2002-10-10 22:50                         ` Mike Fedyk
2002-10-10 22:58                           ` Erik Andersen
2002-10-11  8:26                           ` Giuliano Pochini
2002-10-11  8:32                           ` Helge Hafting
2002-10-10  8:33                     ` Giuliano Pochini
2002-10-10  9:10                       ` Erik Andersen
2002-10-10  9:38                         ` Giuliano Pochini
2002-10-10 10:40                           ` Miquel van Smoorenburg
2002-10-10 11:01                           ` Helge Hafting
2002-10-10 12:29                             ` Xavier Bestel
2002-10-10 13:17                             ` Giuliano Pochini
2002-10-10 22:44                               ` Mike Fedyk
2002-10-11  8:13                                 ` Giuliano Pochini
2002-10-10 11:38                     ` O_STREAMING has insufficient info - how about fadvise() ? Alan Cox
2002-10-10 11:47                       ` William Lee Irwin III
2002-10-10 15:34                       ` Andrew Morton [this message]
2002-10-10 16:08                         ` Alan Cox
2002-10-10 16:49                         ` Oliver Xymoron
2002-10-10 15:37                     ` [PATCH] O_STREAMING - flag for optimal streaming I/O Gerhard Mack
2002-10-10 22:47                       ` Mike Fedyk
2002-10-11  2:14                         ` Gerhard Mack
2002-10-11  8:10                           ` Chris Wedgwood
2002-10-10  9:14                 ` David Lang
2002-10-10 14:51               ` Denis Vlasenko
2002-10-08 19:53       ` Matthias Schniedermeyer
2002-10-08 19:59         ` Chris Wedgwood
2002-10-08 20:03         ` Andrew Morton
2002-10-08 20:34           ` Matthias Schniedermeyer
2002-10-08 20:42             ` Andrew Morton
2002-10-08 20:37           ` Larry McVoy
2002-10-09 11:53 ` Roy Sigurd Karlsbakk
2002-10-09 14:10 ` Marco Colombo
2002-10-09 14:14   ` Robert Love
2002-10-09 14:33     ` Richard B. Johnson
2002-10-09 15:27     ` Andreas Dilger
2002-10-09 23:17       ` Jamie Lokier
2002-10-09 23:46       ` Rik van Riel
2002-10-10  0:16         ` Jamie Lokier
2002-10-10  2:39           ` Erik Andersen
2002-10-10 10:33         ` Marco Colombo
2002-10-10 20:00           ` Erik Andersen

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=3DA59DED.6167C13B@digeo.com \
    --to=akpm@digeo.com \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=andersen@codepoet.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lk@tantalophile.demon.co.uk \
    --cc=mark@mark.mielke.cc \
    --cc=pochini@denise.shiny.it \
    /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