lkml.org 
[lkml]   [2011]   [Nov]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RESEND 3/3] coccicheck: add parallel execution
On Sat, 5 Nov 2011, Gregory.Dietsche@cuw.edu wrote:

> From: Greg Dietsche <Gregory.Dietsche@cuw.edu>
>
> For example to process 6 SmPL patches at the same time:
> make coccicheck PARALLEL=6
>
> Results are held in /tmp until the scripts finish. By doing this the
> script is able to collate the results from each SmPL patch instead of
> interleaving them in the output.
>
> Version 2: change pkill -P $$ to pkill -s 0
>
> Signed-off-by: Greg Dietsche <Gregory.Dietsche@cuw.edu>
> Acked-by: Nicolas Palix <npalix.work@gmail.com>

Acked-by: Julia Lawall <julia.lawall@lip6.fr>

> ---
> scripts/coccicheck | 27 ++++++++++++++++++++++++++-
> 1 files changed, 26 insertions(+), 1 deletions(-)
>
> diff --git a/scripts/coccicheck b/scripts/coccicheck
> index 1bb1a1b..c2a04c2 100755
> --- a/scripts/coccicheck
> +++ b/scripts/coccicheck
> @@ -97,10 +97,35 @@ coccinelle () {
>
> }
>
> +parallel_cleanup () {
> + pkill -s 0 > /dev/null
> + rm /tmp/cocci_parallel_$$_* 2>/dev/null
> + exit
> +}
> +
> +trap parallel_cleanup SIGINT
> +PARALLEL_ID=0
> +
> if [ "$COCCI" = "" ] ; then
> for f in `find $srctree/scripts/coccinelle/ -name '*.cocci' -type f | sort`; do
> - coccinelle $f
> + if [ "$PARALLEL" -eq "$PARALLEL" 2>/dev/null ] ; then
> + if [ "$ONLINE" = "0" ] ; then
> + echo Processing: `basename $f`
> + fi
> + coccinelle $f>/tmp/cocci_parallel_$$_$PARALLEL_ID 2>&1 &
> + PARALLEL_ID=$(($PARALLEL_ID + 1))
> + while [ "`jobs -p | wc -l`" -ge "$PARALLEL" ] ; do
> + sleep 3
> + done
> + else
> + coccinelle $f
> + fi
> done
> + wait
> + if [ "$PARALLEL_ID" -ge "0" ] ; then
> + cat /tmp/cocci_parallel_$$_*
> + parallel_cleanup
> + fi
> else
> coccinelle $COCCI
> fi
> --
> 1.7.6.4
>
>


\
 
 \ /
  Last update: 2011-11-06 19:25    [W:0.053 / U:0.212 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site