On Wed, 2011-07-06 at 11:59 -0700, Dale Curtis wrote: > pbzip2 provides a linear increase in performance per core. On most of our > machines that means a 75% speedup in a --all packaging step, reducing the > packaging time from ~5 minutes down to a ~1m15s. > > Also fixes a small bug where if no exclude_dir was specified None would > be added to the command line.
Applied the updated version. Thanks Dale! http://autotest.kernel.org/changeset/5491 > Also turns off verbosity. Is anyone using this? > > Review link: http://gerrit.chromium.org/gerrit/#change,3567 > > Signed-off-by: Dale Curtis <[email protected]> > --- > client/common_lib/base_packages.py | 23 +++++++++++++++++++++-- > 1 files changed, 21 insertions(+), 2 deletions(-) > > diff --git a/client/common_lib/base_packages.py > b/client/common_lib/base_packages.py > index 3c2b0bb..15bcd61 100644 > --- a/client/common_lib/base_packages.py > +++ b/client/common_lib/base_packages.py > @@ -14,6 +14,19 @@ from autotest_lib.client.common_lib import error, utils, > global_config > CHECKSUM_FILE = "packages.checksum" > > > +def has_pbzip2(): > + '''Check if parallel bzip2 is available on this system.''' > + try: > + utils.system('which pbzip2') > + except error.CmdError, e: > + return False > + return True > + > + > +# is parallel bzip2 available for use? > +_PBZIP2_AVAILABLE = has_pbzip2() > + > + > def parse_ssh_path(repo): > ''' > Parse ssh://xx@xx/path/to/ and return a tuple with host_line and > @@ -759,10 +772,16 @@ class BasePackageManager(object): > ''' > tarball_path = os.path.join(dest_dir, pkg_name) > temp_path = tarball_path + '.tmp' > - cmd = "tar -cvjf %s -C %s %s " % (temp_path, src_dir, exclude_string) > + cmd_list = ['tar', '-cf', temp_path, '-C', src_dir] > + if _PBZIP2_AVAILABLE: > + cmd_list.append('--use-compress-prog=pbzip2') > + else: > + cmd_list.append('-j') > + if exclude_string is not None: > + cmd_list.append(exclude_string) > > try: > - utils.system(cmd) > + utils.system(' '.join(cmd_list)) > except: > os.unlink(temp_path) > raise _______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
