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>