Re: File System Performance

Andrew Morton
2001-11-12T22:17:13Z

Linus Torvalds wrote:
>
> In article <3BF04289.8FC8B7B7@zip.com.au>,
> Andrew Morton <akpm@zip.com.au> wrote:
> >
> >It's tar. It cheats. It somehow detects that the
> >output is /dev/null, and so it doesn't read the input files.
>
> Probably the kernel.
>
> If you do a mmap()+write(), the write() to /dev/null won't even read the
> mmap contents, which in turn will cause the pages to never be brought
> in.
>
> Anything which uses mmap+write will show this.

Actually, tar _is_ doing funnies with /dev/null. Changelog says:

1995-12-21 François Pinard <pinard@iro.umontreal.ca>

* buffer.c: Rename a few err variables to status.
* extract.c: Rename a few check variables to status.

Corrections to speed-up the sizeing pass in Amanda:
* tar.h: Declare dev_null_output.
* buffer.c (open_archive): Detect when archive is /dev/null.
(flush_write): Avoid writing to /dev/null.
* create.c (dump_file): Do not open file if archive is being
written to /dev/null, nor read file nor restore times.
Reported by Greg Maples and Tor Lillqvist.

One wonders why.

-