Rasmus: What version of Coccinelle are you using?

Nicolas: What options does make coccicheck use?

thanks,
julia

On Tue, 3 Feb 2015, Rasmus Villemoes wrote:

> Hi Julia et al
>
> As you may have seen, I've put a bunch of coccinelle scripts on github
> (https://github.com/Villemoes/linux-cocci); I still have some more I
> want to clean up before making them public.
>
> Now, I'm having some trouble with some of these. For the sake of
> threading [and because this turned out to be rather long], I'll try to
> just post one question per thread.
>
> The first is a performance problem. I wrote a perl script pcoc
> (pronounced 'peacock', found in the root of the repository) to overcome
> a few problems with the 'make coccicheck' approach:
>
> (1) I've often seen garbled output, since nothing coordinates the access
> to stdout between the spatch instances. That's especially annoying when
> it took several minutes to complete.
> (2) The output is not neatly sorted by subsystem, so running 'git apply
> --stat' can't be used to get an overview of where there's most to gain.
> (3) It's not easily applicable for projects other than the kernel.
> (4) I grew tired of typing "make coccicheck COCCI=/some/file.cocci MODE=patch
> M=sub/system/"; bash completion couldn't help with most of this. I
> wanted to be able to just say 'pcoc /some/file.cocci sub/system/'.
>
> As such, it works perfectly. But I've noticed something slightly
> odd: The time required sometimes scales almost linearly with the number
> of files each spatch instance is given; also, the memory use as seen in
> top goes through the roof. If anything, I would expect the total time to
> go down if each instance handles more files (since the semantic patch
> would need to be parsed fewer times).
>
> For example, running
>
>   pcoc ~/projects/linux-cocci/wtf/ifelse.cocci --mode=context fs/ --popt '-L 
> 100'
>
> takes 55 seconds on my 8-core machine (with total time being 5m15.900s),
> while
>
>   pcoc ~/projects/linux-cocci/wtf/ifelse.cocci --mode=context fs/ --popt '-L 
> 50'
>
> takes 34 seconds (total time 3m51.802s).
>
> In the former case, I see one of the spatch instances reach over 1G of
> memory before finishing. When I do the equivalent
>
>   make coccicheck COCCI=~/projects/linux-cocci/wtf/ifelse.cocci MODE=context 
> M=fs/
>
> it finishes in 28 seconds (2m32.598s total user time), and no spatch
> instance uses more than 200 M of memory.
>
> The only thing I can imagine would explain this is that when one passes
> files explicitly on the command line, there is some ever-growing data
> structure which is repeatedly traversed. Is this is a bug in spatch or
> in my use of the tool? Is there a work-around?
>
> Best,
> Rasmus
>
> _______________________________________________
> Cocci mailing list
> [email protected]
> https://systeme.lip6.fr/mailman/listinfo/cocci
>
_______________________________________________
Cocci mailing list
[email protected]
https://systeme.lip6.fr/mailman/listinfo/cocci

Reply via email to