All of lore.kernel.org
 help / color / mirror / Atom feed
From: CJ <cj@cjcj.com>
To: linux-kernel@vger.kernel.org
Subject: Re: Idea for improving linux buffer cache behaviour
Date: Sun, 05 Oct 2003 10:56:09 -0700	[thread overview]
Message-ID: <3F805B39.8070209@cjcj.com> (raw)
In-Reply-To: <20031005172612.GA8432@hh.idb.hist.no>

1. A problem is o_direct is broken and/or confused with
    file systems.  There is a misguided micro-optimization
    that requires page alignment and sector alignment and
    size.  Even if broken DMA or controllers require these,
    O_DIRECT need not.  O_DIRECT is about the cache.

2. Even when O_DIRECT requires a bounce buffer, it need
    not wipe memory, it could easily confine itself to 1-4
    buffers and even support read ahead.  Then DVDs could
    be mounted O_DIRECT by default.

3. Buffer management has become a DOS on Linux leaving
    disk bound programs with the disk light off for ten
    seconds at a crack.  Writing is worst of all.



Helge Hafting wrote:

> On Sat, Oct 04, 2003 at 10:34:58PM -0700, Mike Fedyk wrote:
> 
>>On Sat, Oct 04, 2003 at 03:14:14PM -0400, Rik van Riel wrote:
>>
>>>On Sat, 4 Oct 2003, David Ashley wrote:
>>>
>>>
>>>>Forgive me if this has already been thought of, or is obsolete, or is
>>>>just plain a bad idea, but here it is:
>>>
>>>Do you also want an answer if the kernel already does
>>>exactly what you are suggesting ? ;)
>>>
>>
>>Then why doesn't it work better?
>>
>>
>>>>1) Lowest access count looked at first to toss
>>>>2) If access counts equal, throw out oldest first
>>>
>>>>The net result is commonly used items you very much want to remain in
>>>>cache always quickly get rated very highly as the system is used.
>>>
>>>Which results in exactly the behaviour you're complaining
>>>about ;))
>>
>>So, you use the system, have glibc loaded, and then play a dvd, and now
>>glibc needs to be re-read because it's not in cache.
>>
>>Why wasn't glibc (one example) kept in cache with the streaming read from
>>the dvd?
> 
> 
> There may be many reasons here, take a look at how many times the
> dvd contents were used.  You may get a surprise there.  
> The number ought to be 1, right?  But the burner program may read
> smaller chunks or something, causing many references to the same block.
> 
> Also, the number-of-references approach has its own problems.
> Something that is used a lot for a while will stay in cache for
> a long while when no longer used, taking up space.  That can be
> a problem too - i.e. run some large simulation which fill up
> memory for a while, and nothing else stays in cache afterwards.
> 
> Helge Hafting
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 
> .
> 


      reply	other threads:[~2003-10-05 17:56 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-10-04 15:34 Idea for improving linux buffer cache behaviour David Ashley
2003-10-04 19:14 ` Rik van Riel
2003-10-05  5:34   ` Mike Fedyk
2003-10-05 17:26     ` Helge Hafting
2003-10-05 17:56       ` CJ [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=3F805B39.8070209@cjcj.com \
    --to=cj@cjcj.com \
    --cc=linux-kernel@vger.kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.