Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Feb 2010 22:53:38 +0100
From:      Juergen Lock <nox@jelal.kn-bremen.de>
To:        Tim Kientzle <kientzle@freebsd.org>
Cc:        freebsd-hackers@freebsd.org, Juergen Lock <nox@jelal.kn-bremen.de>
Subject:   Re: "tar tfv /dev/cd0" speedup patch; Linux compatibility patches
Message-ID:  <20100223215338.GA67810@triton8.kn-bremen.de>
In-Reply-To: <4B835DFD.5060507@freebsd.org>
References:  <20100217215940.GA19713@triton8.kn-bremen.de> <20100219181247.GA35702@triton8.kn-bremen.de> <4B7F711E.6040402@freebsd.org> <201002200100.48161.jkim@FreeBSD.org> <20100220103329.GA35467@triton8.kn-bremen.de> <4B81DB31.70201@freebsd.org> <20100222230311.GA19535@triton8.kn-bremen.de> <4B835DFD.5060507@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Feb 22, 2010 at 08:47:57PM -0800, Tim Kientzle wrote:
> Juergen Lock wrote:
> > On Sun, Feb 21, 2010 at 05:17:37PM -0800, Tim Kientzle wrote:
> >>
> >> Could you try the current version of read_open_filename from:
> >>
> >> http://libarchive.googlecode.com/svn/trunk/libarchive/archive_read_open_filename.c
> >
> > Small but important bug:
> > 
> > Index: archive_read_open_filename.c
> > @@ -94,7 +94,7 @@ archive_read_open_filename(struct archiv
> >  	struct read_file_data *mine;
> >  	void *buffer;
> >  	int fd;
> > -	int is_disk_like;
> > +	int is_disk_like = 0;
> 
> Ah.  Good catch!
> 
>   >  Btw...  the lseek + read combinations could also be replaced with
> > pread(2), for the least amount of syscalls. :)
> 
> Unfortunately, pread() isn't as portable.  It's
> an interesting idea, though; maybe I'll play with that.
> 
Yeah this probably needs to be conditional on HAVE_PREAD etc.

> >  (Especially since I
> > noticed this version at least when ran on an optical disc with iso9660
> > ends up doing lots of lseek()s towards the end without ever reading
> > anything from the disc anymore...)
> 
> Fortunately, because there are no reads, those lseek()
> requests are pretty cheap.  But you're right, it
> wouldn't be hard to eliminate the unnecessary system
> calls.
> 
> >  Patches are here: (made on stable/8, if they don't apply on head
> > I'll have to make extra versions for that...)
> > 	http://people.freebsd.org/~nox/linuxdisk-blk.patch [1]
> > 	http://people.freebsd.org/~nox/lseek-seek_end.patch [2]
> 
> I'll let someone more familiar with the linuxolator code
> comment on those.

 I now made that an extra thread also on -emulation.

 Cheers,
	Juergen



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100223215338.GA67810>