On Nov 18, 2011, at 12:31 PM, Alexander Best wrote:

> On Fri Nov 18 11, Tim Kientzle wrote:
>> 
>> Take a look at 
>> 
>> http://libarchive.googlecode.com/svn/trunk/libarchive/archive_read_open_filename.c
>> 
>> Especially the comments about detecting "disk-like" devices.
>> I rewrote a bunch of this code to introduce an explicit
>> notion of "strategy" so that we could optimize access
>> to a variety of different devices.
>> 
>> This code has a notion of "disk-like" file descriptors and
>> some optimizations for such.  There are some comments
>> in there outlining similar optimizations that could be made
>> for "tape-like" or "socket-like" devices.
> 
> great you posted that file as reference. i believe most of the stuff done 
> there
> should actually be done within lseek().

Libarchive runs on a lot of systems other than FreeBSD.
FreeBSD is not the only Unix-like system with this issue,
so that code isn't going to go out of libarchive regardless.

If you think those same ideas can be used in dd or hd
to speed them up, please send your patches.

The key point:  You cannot unconditionally call lseek()
to skip over data.  Instead, treat lseek() as an optimization
that can be used under some circumstances.  The
question then becomes one of figuring out when
that optimization can be enabled.

Tim

_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscr...@freebsd.org"

Reply via email to