[PATCH] fadvise(2) system call

Alfred Perlstein alfred at freebsd.org
Thu Nov 10 01:25:43 UTC 2011


* Paul Saab <ps at mu.org> [111109 16:32] wrote:
> On Wed, Nov 9, 2011 at 3:44 PM, Bruce Cran <bruce at cran.org.uk> wrote:
> > On 08/11/2011 13:00, John Baldwin wrote:
> >>
> >> I think it would be fine to add flags to applications like 'tar' to allow
> >> users to alter their behavior in specific use cases when it makes sense.
> >> However, I think there are more workloads for 'tar' than the ones you are
> >> thinking of and we should be hesitant to change applications to use non-
> >> default settings.
> >
> > Someone's done that for GNU tar on Linux, adding a --no-oscache switch:
> > http://www.mysqlperformanceblog.com/2010/04/02/fadvise-may-be-not-what-you-expect/
> 
> So adding this support is good, but not for general purpose.  It's
> really only good when you're pumping gigs of data through tar.  I did
> this for libarchive  (plus other work for O_DIRECT reading and
> creating the archive) for copying large amounts of data without
> impacting a running system.. It worked great for this, but then it
> absolutely fails when extracting a tar archive with millions of little
> files because of all the sync operations.

I've thought about this and it almost makes sense to have a secondary
LRU that such pages would wind up in that is much smaller than the system
one.  I'm pretty sure there are a number of papers on this, but I've not
looked over them in a long while.

> 
> Anyway, this is a good option to enable and has very practical uses
> out there, but it should be turned on with an option and not on by
> default.

What about the operation of just reading the tar archive itself?

-- 
- Alfred Perlstein
.- VMOA #5191, 03 vmax, 92 gs500, 85 ch250, 07 zx10
.- FreeBSD committer


More information about the freebsd-arch mailing list