Subject: Re: Is O_DIRECT useless on NetBSD?
To: None <tech-kern@NetBSD.org>
From: Roland Illig <roland.illig@gmx.de>
List: tech-kern
Date: 11/21/2007 16:08:59
Antti Kantee wrote:
> On Wed Nov 21 2007 at 15:11:39 +0100, Roland Illig wrote:
>
>>>Since I expect the program to not read any data twice, I added the
>
>
> What about other programs? ;)
Cannot be. :) First, I freed some memory by using "yes | less", and when
I interrupted that, I had 300 MB free. Then I started my archiver, and
the free memory decreased with approximately the speed of data consumed
by it.
> I am assuming your archiver is extending the file. This does not work
> for O_DIRECT and it falls back to the buffered path. I am not sure
> if there is any real reason why it shouldn't be allowed, but at least
> currently the O_DIRECT code doesn't do block allocation. Maybe $ubcgod
> knows a deeper truth?
So am I right that currently there is no way for a program to say "I
will write some data to that file, and nobody is going to use it in the
next time, so please don't buffer it"?
I'm asking because it is pretty annoying that the cached data for
programs I often run (like firefox, eclipse) is displaced by data that
will not be used. That makes starting these programs very slow.
Roland