The Linux Kernel Mailing List
 help / color / mirror / Atom feed
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
> 
> 

  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