cvs commit: src/usr.bin/tar Makefile bsdtar.1 bsdtar.c bsdtar.h bsdtar_platform.h matching.c read.c util.c write.c

Tim Kientzle tim at
Tue Apr 13 11:10:24 PDT 2004

Tim Kientzle wrote:
> Brian F. Feldman wrote:
>> ... it should be possible to get more speed out of bsdtar ...
> Libarchive ... always writes fixed-size blocks, but you
> can at least set the block size ...

Since the library calls a client-provided write routine
for each block, you should also be able to set up
async writes and get some I/O overlap that way.
(In particular, this might speed up operations
like  tar -cf - foo | tar -xf - -C /mnt
to copy dir heirarchies across drives.)

Of course, libarchive reuses it's block buffer,
so you would have to copy the data out before
starting the I/O and returning.  Hmmmm....
There's no reason libarchive couldn't use
a round-robin list of block buffers
internally if that would help.


More information about the freebsd-current mailing list