]> code.ossystems Code Review - openembedded-core.git/commitdiff
sstate/bitbake.conf: Use pigz if available
authorRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 20 Jul 2018 10:25:17 +0000 (10:25 +0000)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Tue, 24 Jul 2018 10:52:07 +0000 (11:52 +0100)
Currently the compression of sstate objects is single threaded. In the case
of ltp, this takes around 33s. If we add pigz into the list of non-fatal
HOSTTOOLS and then use if it available when building the sstate object,
this time drops to around 6s.

Since pigz is now widely available this is an optimisation we should
utilise.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/classes/sstate.bbclass
meta/conf/bitbake.conf

index 5a0722567a568d4730dbfe4a5483c00934a63a00..350d3107f590eef8d13989f8e97c981c1c41704a 100644 (file)
@@ -715,17 +715,24 @@ sstate_task_postfunc[dirs] = "${WORKDIR}"
 #
 sstate_create_package () {
        TFILE=`mktemp ${SSTATE_PKG}.XXXXXXXX`
+
+        # Use pigz if available
+        OPT="-cz"
+        if [ -x "$(command -v pigz)" ]; then
+            OPT="-I pigz -c"
+        fi
+
        # Need to handle empty directories
        if [ "$(ls -A)" ]; then
                set +e
-               tar -czf $TFILE *
+               tar $OPT -f $TFILE *
                ret=$?
                if [ $ret -ne 0 ] && [ $ret -ne 1 ]; then
                        exit 1
                fi
                set -e
        else
-               tar -cz --file=$TFILE --files-from=/dev/null
+               tar $OPT --file=$TFILE --files-from=/dev/null
        fi
        chmod 0664 $TFILE
        mv -f $TFILE ${SSTATE_PKG}
index 8f738545995cb8676d361762f34dab830570c0fc..e28f3c7311cfb9de210e11ac3fca77b50e0c50b1 100644 (file)
@@ -490,7 +490,7 @@ HOSTTOOLS += " \
 HOSTTOOLS += "${@'ip ping ps scp ssh stty' if (bb.utils.contains_any('IMAGE_CLASSES', 'testimage testsdk', True, False, d) or any(x in (d.getVar("BBINCLUDED") or "") for x in ["testimage.bbclass", "testsdk.bbclass"])) else ''}"
 
 # Link to these if present
-HOSTTOOLS_NONFATAL += "aws ccache gcc-ar gpg ld.bfd ld.gold nc sftp socat ssh sudo"
+HOSTTOOLS_NONFATAL += "aws ccache gcc-ar gpg ld.bfd ld.gold nc pigz sftp socat ssh sudo"
 
 # Temporary add few more detected in bitbake world
 HOSTTOOLS_NONFATAL += "join nl size yes zcat"