diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2018-06-11 15:58:09 +0200 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2018-06-13 10:52:33 +0200 |
commit | 3b253ad6890af0fda91fed8b67ad0805b6ff1a3d (patch) | |
tree | 6736fd6620528804ddb946ae57589aa42c029f40 /coccinelle | |
parent | basic/parse-util: remove unnecessary parentheses (diff) | |
download | systemd-3b253ad6890af0fda91fed8b67ad0805b6ff1a3d.tar.gz systemd-3b253ad6890af0fda91fed8b67ad0805b6ff1a3d.tar.bz2 systemd-3b253ad6890af0fda91fed8b67ad0805b6ff1a3d.zip |
cocinelle: use GNU parallel to run spatch
spatch is single-threaded, i.e. slow. On my machine it allocates 5 GB of memory
and starts swapping, which makes it even slower. Using parallel makes the whole
thing pleasantly fast.
Diffstat (limited to 'coccinelle')
-rwxr-xr-x | coccinelle/run-coccinelle.sh | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/coccinelle/run-coccinelle.sh b/coccinelle/run-coccinelle.sh index a18da58a3..22ab66d3d 100755 --- a/coccinelle/run-coccinelle.sh +++ b/coccinelle/run-coccinelle.sh @@ -11,11 +11,17 @@ case "$1" in ;; esac +if ! parallel -h >/dev/null; then + echo 'Please install GNU parallel (package "parallel")' + exit 1 +fi + for SCRIPT in ${@-$top/coccinelle/*.cocci} ; do echo "--x-- Processing $SCRIPT --x--" TMPFILE=`mktemp` echo "+ spatch --sp-file $SCRIPT $args ..." - spatch --sp-file $SCRIPT $args $files 2>"$TMPFILE" || cat "$TMPFILE" - rm "$TMPFILE" + parallel --halt now,fail=1 --keep-order --noswap --max-args=20 \ + spatch --sp-file $SCRIPT $args ::: $files \ + 2>"$TMPFILE" || cat "$TMPFILE" echo -e "--x-- Processed $SCRIPT --x--\n" done |