All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jeff King <peff@peff.net>
To: "René Scharfe" <l.s.r@web.de>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 0/11] renaming argv_array
Date: Wed, 12 Aug 2020 13:08:49 -0400	[thread overview]
Message-ID: <20200812170849.GA43566@coredump.intra.peff.net> (raw)
In-Reply-To: <045ea49b-7165-0f45-e670-a24bf648f880@web.de>

On Wed, Aug 12, 2020 at 06:23:01PM +0200, René Scharfe wrote:

> > This seems to be related to setting SPATCH_BATCH_SIZE to "0". It used to make
> > things go much faster (if you had enough memory), but now seems to just
> > consume tons of CPU. Setting it to "1" finishes the whole thing in ~13
> > minutes of CPU (~2m wall-clock).
> 
> This bit me as well, and I settled with SPATCH_BATCH_SIZE = 10.  With
> MAKEFLAGS += -j3 I get these number, which are quite similar to yours
> (except I don't dare use more cores due to cooling issues..):
> 
>   real	4m12,393s
>   user	12m15,447s
>   sys	0m10,418s

Interestingly, that was slower for me (2m47s wall-clock, with 27m of
CPU). Using "2" is slightly faster than "1". But "3" is a little less
fast, and "4" is slower than "1". So...no clue what is going on.

> > So that's at least a path forward, but in general I have been frustrated
> > with operational aspects of coccinelle like this.
> 
> And I was a bit shocked when Coccinelle's testing package became
> unmaintained for a while and I had to compile it from source.

Yeah, I've had various issues with the packaging. For a long time they
had 1.0.7 in experimental, but with no python support. I wonder if it's
worth starting to use python scriptlets in our coccinelle rules, as
described in 4d168e742a (coccinelle: use <...> for function exclusion,
2018-08-28). They're faster and IMHO easier to understand.

Of course I tried it out and got some inscrutable errors:

  SPATCH contrib/coccinelle/object_id.cocci
  init_defs_builtins: /usr/bin/../lib/coccinelle/standard.h
  Python path configuration:
    PYTHONHOME = '/lib/x86_64-linux-gnu/..'
    PYTHONPATH = '/usr/bin/../lib/coccinelle/python'
    program name = 'python3'
    isolated = 0
    environment = 1
    user site = 1
    import site = 1
    sys._base_executable = '/usr/bin/python3'
    sys.base_prefix = '/lib/x86_64-linux-gnu/..'
    sys.base_exec_prefix = '/lib/x86_64-linux-gnu/..'
    sys.executable = '/usr/bin/python3'
    sys.prefix = '/lib/x86_64-linux-gnu/..'
    sys.exec_prefix = '/lib/x86_64-linux-gnu/..'
    sys.path = [
      '/usr/bin/../lib/coccinelle/python',
      '/lib/x86_64-linux-gnu/../lib/python38.zip',
      '/lib/x86_64-linux-gnu/../lib/python3.8',
      '/lib/x86_64-linux-gnu/../lib/python3.8/lib-dynload',
    ]
  Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
  Python runtime state: core initialized
  ModuleNotFoundError: No module named 'encodings'

Fun.

-Peff

  reply	other threads:[~2020-08-12 17:08 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-28 20:21 Jeff King
2020-07-28 20:21 ` [PATCH 01/11] argv-array: use size_t for count and alloc Jeff King
2020-07-28 20:23 ` [PATCH 02/11] argv-array: rename to strvec Jeff King
2020-07-28 20:23 ` [PATCH 03/11] strvec: rename files from argv-array " Jeff King
2020-07-28 20:24 ` [PATCH 04/11] quote: rename sq_dequote_to_argv_array to mention strvec Jeff King
2020-07-28 20:24 ` [PATCH 05/11] strvec: convert builtin/ callers away from argv_array name Jeff King
2020-07-28 20:24 ` [PATCH 06/11] strvec: convert more " Jeff King
2020-07-28 20:25 ` [PATCH 07/11] strvec: convert remaining " Jeff King
2020-07-28 20:26 ` [PATCH 08/11] strvec: fix indentation in renamed calls Jeff King
2020-07-28 22:43   ` Jacob Keller
2020-07-28 23:31     ` Junio C Hamano
2020-07-28 20:26 ` [PATCH 09/11] strvec: update documention to avoid argv_array Jeff King
2020-07-28 20:27 ` [PATCH 10/11] strvec: drop argv_array compatibility layer Jeff King
2020-07-28 22:23   ` Junio C Hamano
2020-07-29  0:04     ` Jeff King
2020-07-29  0:37       ` Jeff King
2020-07-29  0:40         ` Jeff King
2020-07-29  0:47           ` Junio C Hamano
2020-07-29 16:54             ` Derrick Stolee
2020-07-29  0:44         ` Junio C Hamano
2020-07-29 16:22           ` Jeff King
2020-07-28 20:28 ` [PATCH 11/11] strvec: rename struct fields Jeff King
2020-07-28 21:16   ` Junio C Hamano
2020-07-28 21:18     ` Junio C Hamano
2020-07-29  6:55       ` Christian Couder
2020-07-29 16:34         ` Jeff King
2020-07-29 18:03           ` Junio C Hamano
2020-07-28 21:20     ` Jeff King
2020-07-28 22:45 ` [PATCH 0/11] renaming argv_array Jacob Keller
2020-07-29  0:06   ` Jeff King
2020-07-29  6:15 ` Christian Couder
2020-07-29  6:19   ` Christian Couder
2020-07-29 13:32   ` Eric Sunshine
2020-07-29 16:33   ` Jeff King
2020-08-11 16:08 ` René Scharfe
2020-08-11 18:28   ` Taylor Blau
2020-08-11 19:00   ` Junio C Hamano
2020-08-11 20:39     ` Jacob Keller
2020-08-11 21:03       ` Junio C Hamano
2020-08-12 12:42     ` Johannes Schindelin
2020-08-12 15:06   ` Jeff King
2020-08-12 15:10     ` Jeff King
2020-08-12 16:23       ` René Scharfe
2020-08-12 17:08         ` Jeff King [this message]
2020-08-12 18:18           ` René Scharfe
2020-08-12 19:57             ` Jeff King

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=20200812170849.GA43566@coredump.intra.peff.net \
    --to=peff@peff.net \
    --cc=git@vger.kernel.org \
    --cc=l.s.r@web.de \
    --subject='Re: [PATCH 0/11] renaming argv_array' \
    /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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.