From: Julia Lawall <julia.lawall@lip6.fr>
To: "Luis R. Rodriguez" <mcgrof@kernel.org>
Cc: Gilles Muller <Gilles.Muller@lip6.fr>,
nicolas.palix@imag.fr, mmarek@suse.com,
linux-kernel@vger.kernel.org, cocci@systeme.lip6.fr
Subject: Re: [PATCH 4/4] coccicheck: add indexing enhancement options
Date: Fri, 10 Jun 2016 23:02:38 +0200 (CEST) [thread overview]
Message-ID: <alpine.DEB.2.02.1606102301090.2070@localhost6.localdomain6> (raw)
In-Reply-To: <1465591332-31113-5-git-send-email-mcgrof@kernel.org>
On Fri, 10 Jun 2016, Luis R. Rodriguez wrote:
> Enable indexing optimizations heuristics. Coccinelle has
> support to make use of its own enhanced "grep" mechanisms
> instead of using regular grep for searching code 'coccigrep',
> in practice though this seems to not perform better than
> regular grep however its expected to help with some use cases
> so we use that if you have no other indexing options in place
> available.
>
> Since git has its own index, support for using 'git grep' has been
> added to Coccinelle, that should on average perform better than
> using the internal cocci grep, and regular grep. Lastly, Coccinelle
> has had support for glimpseindex for a long while, however the
> tool was previously closed source, its now open sourced, and
> provides the best performance, so support that if we can detect
> you have a glimpse index.
>
> These tests have been run on an 8 core system:
>
> Before:
>
> $ export COCCI=scripts/coccinelle/free/kfree.cocci
> $ time make coccicheck MODE=report
>
> Before this patch with no indexing or anything:
>
> real 16m22.435s
> user 128m30.060s
> sys 0m2.712s
>
> Using coccigrep (after this patch if you have no .git):
>
> real 16m27.650s
> user 128m47.904s
> sys 0m2.176s
>
> If you have .git and therefore use gitgrep:
>
> real 16m21.220s
> user 129m30.940s
> sys 0m2.060s
>
> And if you have a .glimpse_index:
>
> real 16m14.794s
> user 128m42.356s
> sys 0m1.880s
I don't see any convincing differences in these times.
I believe that Coccinelle's internal grep is always used, even with no
option.
I'm puzzled why glimpse gives no benefit.
julia
>
> Signed-off-by: Luis R. Rodriguez <mcgrof@kernel.org>
> ---
> scripts/coccicheck | 24 ++++++++++++++++++++++++
> 1 file changed, 24 insertions(+)
>
> diff --git a/scripts/coccicheck b/scripts/coccicheck
> index eeb5fdc142ca..f31c9a152559 100755
> --- a/scripts/coccicheck
> +++ b/scripts/coccicheck
> @@ -5,6 +5,8 @@
> # version 1.0.0-rc11.
> #
>
> +DIR=$(dirname $(readlink -f $0))
> +DIR="${DIR}/../"
> SPATCH="`which ${SPATCH:=spatch}`"
>
> if [ ! -x "$SPATCH" ]; then
> @@ -15,6 +17,20 @@ fi
> USE_JOBS="no"
> $SPATCH --help | grep "\-\-jobs" > /dev/null && USE_JOBS="yes"
>
> +# 0. --use-glimpse currently outperforms all. Refer
> +# to scripts/glimpse.sh for details.
> +# 1. Second best is --use-gitgrep, this is very comparable to --use-glimpse
> +# 2. Use --use-coccigrep if no indexing options are available and your
> +# version of coccinelle supports it
> +USE_GLIMPSE="no"
> +$SPATCH --help | grep "\-\-use\-glimpse" > /dev/null && [ -f $DIR/.glimpse_index ] && USE_GLIMPSE="yes"
> +
> +USE_GITGREP="no"
> +$SPATCH --help | grep "\-\-use\-gitgrep" > /dev/null && [ -d $DIR/.git ] && USE_GITGREP="yes"
> +
> +USE_COCCIGREP="no"
> +$SPATCH --help | grep "\-\-use\-coccigrep" > /dev/null && USE_COCCIGREP="yes"
> +
> # The verbosity may be set by the environmental parameter V=
> # as for example with 'make V=1 coccicheck'
>
> @@ -89,6 +105,14 @@ else
> OPTIONS="$OPTIONS --jobs $NPROC --chunksize 1"
> fi
>
> +if [ "$USE_GLIMPSE" = "yes" ]; then
> + OPTIONS="$OPTIONS --use-glimpse"
> +elif [ "$USE_GITGREP" = "yes" ]; then
> + OPTIONS="$OPTIONS --use-gitgrep"
> +elif [ "$USE_COCCIGREP" = "yes" ]; then
> + OPTIONS="$OPTIONS --use-coccigrep"
> +fi
> +
> run_cmd_paramap() {
> if [ $VERBOSE -ne 0 ] ; then
> echo "Running ($NPROC in parallel): $@"
> --
> 2.8.2
>
>
next prev parent reply other threads:[~2016-06-10 21:02 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-10 20:42 [PATCH 0/4] scripts/coccicheck: add paramap and indexing options Luis R. Rodriguez
2016-06-10 20:42 ` [PATCH 1/4] coccicheck: move spatch binary check up Luis R. Rodriguez
2016-06-10 20:42 ` [PATCH 2/4] coccicheck: enable paramap support Luis R. Rodriguez
2016-06-11 5:45 ` [Cocci] " SF Markus Elfring
2016-06-11 5:55 ` Julia Lawall
2016-06-10 20:42 ` [PATCH 3/4] scripts: add glimpse.sh for indexing the kernel Luis R. Rodriguez
2016-06-11 17:09 ` [Cocci] " SF Markus Elfring
2016-06-10 20:42 ` [PATCH 4/4] coccicheck: add indexing enhancement options Luis R. Rodriguez
2016-06-10 21:02 ` Julia Lawall [this message]
2016-06-10 21:18 ` Luis R. Rodriguez
2016-06-10 21:21 ` Julia Lawall
2016-06-10 21:43 ` [Cocci] " Wolfram Sang
2016-06-10 21:49 ` Luis R. Rodriguez
2016-06-10 21:51 ` Wolfram Sang
2016-06-10 22:08 ` Luis R. Rodriguez
2016-06-10 22:25 ` Luis R. Rodriguez
2016-06-11 5:46 ` Wolfram Sang
2016-06-11 5:54 ` Julia Lawall
2016-06-11 6:09 ` Wolfram Sang
2016-06-13 18:37 ` Luis R. Rodriguez
2016-06-13 18:55 ` Wolfram Sang
2016-06-13 19:48 ` Julia Lawall
2016-06-13 21:22 ` Luis R. Rodriguez
2016-06-14 5:08 ` Julia Lawall
2016-06-11 5:18 ` Julia Lawall
2016-06-11 5:58 ` Wolfram Sang
2016-06-11 6:05 ` Julia Lawall
2016-06-11 5:24 ` Julia Lawall
2016-06-13 18:39 ` Luis R. Rodriguez
2016-06-11 5:17 ` Julia Lawall
2016-06-13 19:35 ` Luis R. Rodriguez
2016-06-13 19:50 ` Julia Lawall
2016-06-13 21:28 ` Luis R. Rodriguez
2016-06-14 5:22 ` Julia Lawall
2016-06-14 19:27 ` Luis R. Rodriguez
2016-06-14 20:47 ` Julia Lawall
2016-06-14 21:10 ` Luis R. Rodriguez
2016-06-14 21:17 ` Julia Lawall
2016-06-14 22:02 ` Luis R. Rodriguez
2016-06-15 7:39 ` Julia Lawall
2016-06-15 15:36 ` Luis R. Rodriguez
2016-06-15 15:44 ` Julia Lawall
2016-06-15 17:53 ` Luis R. Rodriguez
2016-06-11 5:55 ` [Cocci] " SF Markus Elfring
2016-06-11 5:27 ` [Cocci] [PATCH 0/4] scripts/coccicheck: add paramap and indexing options SF Markus Elfring
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=alpine.DEB.2.02.1606102301090.2070@localhost6.localdomain6 \
--to=julia.lawall@lip6.fr \
--cc=Gilles.Muller@lip6.fr \
--cc=cocci@systeme.lip6.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=mcgrof@kernel.org \
--cc=mmarek@suse.com \
--cc=nicolas.palix@imag.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox