Paul,
friendly ping.

Carlo

> On Apr 5, 2017, at 10:16 AM, Carlo Alberto Ferraris <ca...@strayorange.com> 
> wrote:
> 
> Just as a comment about why in my patch I use len explicitly instead of 0: 
> it’s to workaround a bug in linux versions <2.6.6.
> 
> > In kernels before 2.6.6, if len was specified as 0, then this was 
> > interpreted 
> > literally as "zero bytes", rather than as meaning “all bytes through to the 
> > end of the file”. 
> > http://man7.org/linux/man-pages/man2/posix_fadvise.2.html#BUGS 
> > <http://man7.org/linux/man-pages/man2/posix_fadvise.2.html#BUGS>
> 
> Since 0 means is supposed to mean “until the end of file”, passing explicitly 
> the length of the file (that we already have) should be semantically the same.
> 
> Carlo
> 
>> On Apr 4, 2017, at 10:14 PM, Mark <ma...@clara.co.uk 
>> <mailto:ma...@clara.co.uk>> wrote:
>> 
>> On Mon, April 3, 2017 03:17, Paul Eggert wrote:
>>> I've lost context. I prefer not having this depend on an environment
>>> variable.
>>> 
>>> Can't the filesystem in question be fixed to have decent performance in
>>> the typical case where applications access files sequentially? It's not
>>> like 'tar' is a special case. I'd hate to have to modify lots of
>>> programs just to work around a lame filesystem.
>> 
>> I think you're confusing two things:
>> - Carlo's patch
>> - The suggestion to allow the user to tell tar to use POSIX_FADV_NOREUSE
>> and/or POSIX_FADV_DONTNEED. In certain scenarios one, both or neither of
>> those could perform best. [On Linux POSIX_FADV_NOREUSE is currently a
>> no-op.]
>> 
>> Let's ignore the second point for now.
>> 
>> Carlo's patch at
>> https://github.com/CAFxX/tar/commit/8b3ccb099c6ddf9f03d12d1f7c433c7927b964d5 
>> <https://github.com/CAFxX/tar/commit/8b3ccb099c6ddf9f03d12d1f7c433c7927b964d5>
>> uses
>>  posix_fadvise(fd, offset, len, POSIX_FADV_SEQUENTIAL);
>>  posix_fadvise(fd, offset, len, POSIX_FADV_WILLNEED);
>> to give a hint to the OS/filesystem about how the file will be accessed.
>> There shouldn't be any down-side to doing that. On Linux for example,
>> POSIX_FADV_SEQUENTIAL causes the filesystem read-ahead amount to be
>> doubled.
>> 
>> I'm not qualified to say whether the patch should be committed as-is, but
>> the principle is sound. [I might choose a different name for the
>> prefetch() function though.]
>> 
>> 
> 

Reply via email to