Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 17 Mar 2008 17:24:00 +0200
From:      Diomidis Spinellis <dds@aueb.gr>
To:        Pawel Jakub Dawidek <pjd@FreeBSD.ORG>
Cc:        cvs-src@FreeBSD.ORG, Alfred Perlstein <alfred@FreeBSD.ORG>, src-committers@FreeBSD.ORG, Diomidis Spinellis <dds@FreeBSD.ORG>, cvs-all@FreeBSD.ORG
Subject:   Re: cvs commit: src/tools/regression/bin/mv regress.sh
Message-ID:  <47DE8D10.9090201@aueb.gr>
In-Reply-To: <20080314223652.GA20470@garage.freebsd.pl>
References:  <200712180849.lBI8nmEi088947@repoman.freebsd.org> <20071218100355.GR16982@elvis.mu.org> <20080314223652.GA20470@garage.freebsd.pl>

next in thread | previous in thread | raw e-mail | index | archive | help
Pawel Jakub Dawidek wrote:
> On Tue, Dec 18, 2007 at 02:03:55AM -0800, Alfred Perlstein wrote:
>> * Diomidis Spinellis <dds@FreeBSD.org> [071218 00:48] wrote:
>>> dds         2007-12-18 08:49:47 UTC
>>>
>>>   FreeBSD src repository
>>>
>>>   Modified files:
>>>     tools/regression/bin/mv regress.sh 
>>>   Log:
>>>   Add more tests.  All rename(2)-based tests now succeed.
>>>   The performance of the cross-device equivalents is under investigation.
>> Diomidis,
>>
>> Does 'mv' spawn off tar or something to do the copy part?
>>
>> You can _usually_ get much better cross device performance
>> by hooking two processes together like so:
>>
>> tar -cf - -C /path/to/source . | tar -xf - -C /path/to/dst 
>>
>> This will keep the disks a lot busier, but this can make
>> things worse on cross device moves that happen to be
>> on the same disk.
> 
> I was thinking about adding two options to cp(1) (-1 and -2) to give
> cp(1) a hint if the copy is done inside one disk or between separate
> disks. In -1 case cp(1) will read as large blocks as possible and then
> write them, in -2 case it will spawn two threads: one reader and one
> writer working in parallel. Performance improvements are very visible
> from what I tested.
> 

Adding hints to cp(1) hinders portability.  Even on the same OS, if two 
systems have their disks differently configured, a script may end up 
with an inappropriate hint on one of the two.  Why not use fstat(2) to 
automatically determine if the file resides on different disks, and act 
accordingly?

-- 
Diomidis Spinellis - http://www.spinellis.gr



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