From: "Luis R. Rodriguez" <mcgrof@suse.com>
To: Julia Lawall <julia.lawall@lip6.fr>
Cc: Johannes Berg <johannes@sipsolutions.net>,
linux-kernel@vger.kernel.org, backports@vger.kernel.org,
cocci@systeme.lip6.fr
Subject: Re: [Cocci] [PATCH] coccinelle: add pycocci wrapper for multithreaded support
Date: Thu, 28 Aug 2014 05:46:13 +0200 [thread overview]
Message-ID: <20140828034613.GD3347@wotan.suse.de> (raw)
In-Reply-To: <alpine.DEB.2.02.1404102131390.2201@localhost6.localdomain6>
On Thu, Apr 10, 2014 at 09:32:34PM +0200, Julia Lawall wrote:
>
>
> On Thu, 10 Apr 2014, Luis R. Rodriguez wrote:
>
> > On Thu, Apr 10, 2014 at 07:51:29PM +0200, Johannes Berg wrote:
> > > On Thu, 2014-04-10 at 10:48 -0700, Luis R. Rodriguez wrote:
> > >
> > > > You just pass it a cocci file, a target dir, and in git environments
> > > > you always want --in-place enabled. Experiments and profiling random
> > > > cocci files with the Linux kernel show that using just using number of
> > > > CPUs doesn't scale well given that lots of buckets of files don't require
> > > > work, as such this uses 10 * number of CPUs for its number of threads.
> > > > For work that define more general ruler 3 * number of CPUs works better,
> > > > but for smaller cocci files 3 * number of CPUs performs best right now.
> > > > To experiment more with what's going on with the multithreading one can enable
> > > > htop while kicking off a cocci task on the kernel, we want to keep
> > > > these CPUs busy as much as possible.
> > >
> > > That's not really a good benchmark, you want to actually check how
> > > quickly it finishes ... If you have some IO issues then just keeping the
> > > CPUs busy trying to do IO won't help at all.
> >
> > I checked the profile results, the reason the jobs finish is some threads
> > had no work or little work. Hence why I increased the number of threads,
> > depending on the context (long or short cocci expected, in backports
> > at least, the long being all cocci files in one, the short being --test-cocci
> > flag to gentree.py). This wrapper uses the short assumption with 10 * num_cpus
> >
> > > > Since its just a helper I toss it into the python directory but don't
> > > > install it. Hope is that we can evolve it there instead of carrying this
> > > > helper within backports.
> > >
> > > If there's a plan to make coccinelle itself multi-threaded, what's the
> > > point?
> >
> > To be clear, Coccinelle *has* a form of multithreaded support but requires manual
> > spawning of jobs with references to the max count and also the number thread
> > that this new process you are spawning belongs to. There's plans to consider
> > reworking things to handle all this internally but as I discussed with Julia
> > the changes required would require some structural changes, and as such we
> > need to live with this for a bit longer. I need to use Coccinelle daily now,
> > so figured I'd punt this out there in case others might make use of it.
>
> I agree with Luis. Multithreading inside Coccinelle is currently a
> priority task, but not a highest priority one.
Folks, anyone object to merging pycocci in the meantime? I keep using it outside
of backports and it does what I think most kernel developers expect. This would
be until we get proper parallelism support in place.
Luis
WARNING: multiple messages have this Message-ID (diff)
From: mcgrof@suse.com (Luis R. Rodriguez)
To: cocci@systeme.lip6.fr
Subject: [Cocci] [PATCH] coccinelle: add pycocci wrapper for multithreaded support
Date: Thu, 28 Aug 2014 05:46:13 +0200 [thread overview]
Message-ID: <20140828034613.GD3347@wotan.suse.de> (raw)
In-Reply-To: <alpine.DEB.2.02.1404102131390.2201@localhost6.localdomain6>
On Thu, Apr 10, 2014 at 09:32:34PM +0200, Julia Lawall wrote:
>
>
> On Thu, 10 Apr 2014, Luis R. Rodriguez wrote:
>
> > On Thu, Apr 10, 2014 at 07:51:29PM +0200, Johannes Berg wrote:
> > > On Thu, 2014-04-10 at 10:48 -0700, Luis R. Rodriguez wrote:
> > >
> > > > You just pass it a cocci file, a target dir, and in git environments
> > > > you always want --in-place enabled. Experiments and profiling random
> > > > cocci files with the Linux kernel show that using just using number of
> > > > CPUs doesn't scale well given that lots of buckets of files don't require
> > > > work, as such this uses 10 * number of CPUs for its number of threads.
> > > > For work that define more general ruler 3 * number of CPUs works better,
> > > > but for smaller cocci files 3 * number of CPUs performs best right now.
> > > > To experiment more with what's going on with the multithreading one can enable
> > > > htop while kicking off a cocci task on the kernel, we want to keep
> > > > these CPUs busy as much as possible.
> > >
> > > That's not really a good benchmark, you want to actually check how
> > > quickly it finishes ... If you have some IO issues then just keeping the
> > > CPUs busy trying to do IO won't help at all.
> >
> > I checked the profile results, the reason the jobs finish is some threads
> > had no work or little work. Hence why I increased the number of threads,
> > depending on the context (long or short cocci expected, in backports
> > at least, the long being all cocci files in one, the short being --test-cocci
> > flag to gentree.py). This wrapper uses the short assumption with 10 * num_cpus
> >
> > > > Since its just a helper I toss it into the python directory but don't
> > > > install it. Hope is that we can evolve it there instead of carrying this
> > > > helper within backports.
> > >
> > > If there's a plan to make coccinelle itself multi-threaded, what's the
> > > point?
> >
> > To be clear, Coccinelle *has* a form of multithreaded support but requires manual
> > spawning of jobs with references to the max count and also the number thread
> > that this new process you are spawning belongs to. There's plans to consider
> > reworking things to handle all this internally but as I discussed with Julia
> > the changes required would require some structural changes, and as such we
> > need to live with this for a bit longer. I need to use Coccinelle daily now,
> > so figured I'd punt this out there in case others might make use of it.
>
> I agree with Luis. Multithreading inside Coccinelle is currently a
> priority task, but not a highest priority one.
Folks, anyone object to merging pycocci in the meantime? I keep using it outside
of backports and it does what I think most kernel developers expect. This would
be until we get proper parallelism support in place.
Luis
next prev parent reply other threads:[~2014-08-28 3:46 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-04-10 17:48 [PATCH] coccinelle: add pycocci wrapper for multithreaded support Luis R. Rodriguez
2014-04-10 17:48 ` [Cocci] " Luis R. Rodriguez
2014-04-10 17:51 ` Johannes Berg
2014-04-10 17:51 ` [Cocci] " Johannes Berg
2014-04-10 17:57 ` Luis R. Rodriguez
2014-04-10 17:57 ` [Cocci] " Luis R. Rodriguez
2014-04-10 19:32 ` Julia Lawall
2014-04-10 19:32 ` Julia Lawall
2014-04-11 8:50 ` [Cocci] Software parallelisation? SF Markus Elfring
2014-04-11 18:49 ` Jesper Louis Andersen
2014-04-11 19:40 ` SF Markus Elfring
2014-04-11 20:04 ` Julia Lawall
2014-04-11 20:42 ` [Cocci] Adjustments for Coccinelle's software build process? SF Markus Elfring
2014-04-11 20:55 ` [Cocci] Software parallelisation? SF Markus Elfring
2014-08-28 3:46 ` Luis R. Rodriguez [this message]
2014-08-28 3:46 ` [Cocci] [PATCH] coccinelle: add pycocci wrapper for multithreaded support Luis R. Rodriguez
2014-08-28 18:15 ` Julia Lawall
2014-08-28 18:15 ` Julia Lawall
2014-08-28 20:02 ` Luis R. Rodriguez
2014-08-28 20:02 ` Luis R. Rodriguez
2014-04-11 5:55 ` SF Markus Elfring
2014-04-11 5:55 ` [Cocci] " SF Markus Elfring
2014-04-11 6:01 ` Julia Lawall
2014-04-11 6:01 ` Julia Lawall
2014-04-11 6:15 ` SF Markus Elfring
2014-04-11 6:15 ` SF Markus Elfring
2014-04-11 19:00 ` Luis R. Rodriguez
2014-04-11 19:00 ` Luis R. Rodriguez
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=20140828034613.GD3347@wotan.suse.de \
--to=mcgrof@suse.com \
--cc=backports@vger.kernel.org \
--cc=cocci@systeme.lip6.fr \
--cc=johannes@sipsolutions.net \
--cc=julia.lawall@lip6.fr \
--cc=linux-kernel@vger.kernel.org \
/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 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.