Re: [PATCH] coccinelle: flags.cocci: reorganize patterns to improve efficiency

From: Julia Lawall
Date: Wed Nov 15 2017 - 10:30:05 EST




On Thu, 16 Nov 2017, Masahiro Yamada wrote:

> Hi Julia,
>
>
> 2017-11-15 23:51 GMT+09:00 Julia Lawall <julia.lawall@xxxxxxx>:
> >
> >
> > On Wed, 15 Nov 2017, Masahiro Yamada wrote:
> >
> >> Hi Julia,
> >>
> >>
> >> 2017-11-13 1:08 GMT+09:00 Julia Lawall <julia.lawall@xxxxxxx>:
> >> > An initial rule just matching a function call makes it possible to focus
> >> > on one all at a time, which improves performance in complex functions with
> >> > multiple locking calls. Using a constraint expression lock2 != pre.lock1;
> >> > makes it possible to eliminate the double matching of the lock, lock
> >> > sequence.
> >> >
> >> > Signed-off-by: Julia Lawall <julia.lawall@xxxxxxx>
> >>
> >>
> >> If I apply this patch, locks/flags.cocci does not work for me.
> >>
> >>
> >> $ make coccicheck COCCI=scripts/coccinelle/locks/flags.cocci
> >> MODE=report DEBUG_FILE=log.txt
> >>
> >> Please check for false positives in the output before submitting a patch.
> >> When using "patch" mode, carefully review the patch before submitting it.
> >>
> >> 607 610
> >> coccicheck failed
> >> $ cat log.txt
> >> /usr/bin/spatch -D report --no-show-diff --very-quiet --cocci-file
> >> scripts/coccinelle/locks/flags.cocci --no-includes --include-headers
> >> --dir . -I ./arch/x86/include -I ./arch/x86/include/generated -I
> >> ./include -I ./arch/x86/include/uapi -I
> >> ./arch/x86/include/generated/uapi -I ./include/uapi -I
> >> ./include/generated/uapi --include ./include/linux/kconfig.h --jobs 8
> >> --chunksize 1
> >> Fatal error: exception Failure("meta: parse error: \n = File
> >> \"scripts/coccinelle/locks/flags.cocci\", line 29, column 20, charpos
> >> = 607\n around = 'pre', whole content = expression lock2 !=
> >> pre.lock1;\n")
> >>
> >>
> >>
> >> Could you check it?
> >
> > What version of Coccinelle do you have?
>
>
> I tried 1.0.4 and 1.0.6,
> but both failed.
>
>
> (1.0.4 is distribution version (/usr/bin/spatch) on Ubuntu 16.04LTS
>
>
>
> The output from 1.0.6 is a bit more readable,
> but the content is the same.
>
>
> meta: parse error:
> File "scripts/coccinelle/locks/flags.cocci", line 29, column 20, charpos = 607
> around = 'pre',
> whole content = expression lock2 != pre.lock1;

OK, I will check on it later today. It may require the very soon to be
released 1.0.7.

julia