[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 00/35] RFC: coroutine annotations & clang check
From: |
Marc-André Lureau |
Subject: |
Re: [Qemu-devel] [PATCH 00/35] RFC: coroutine annotations & clang check |
Date: |
Wed, 5 Jul 2017 11:34:16 +0200 |
Hi
On Wed, Jul 5, 2017 at 7:26 AM Markus Armbruster <address@hidden> wrote:
>
> Marc-André Lureau <address@hidden> writes:
>
> > Hi,
> >
> > After investigating a bit using clang-tidy to do some coroutine checks
> > (and hitting a wall as there are no pre-processor info in the AST), it
> > was suggested to me on the clang mailing list to try to use
> > -Wthread-safety. I had to modify clang a bit to make it work on qemu
> > code base (annotations on function typedef etc,
> > https://github.com/elmarco/clang qemu-ta branch - very hackish state).
>
> Hardcore!
I think the most hardcore part is experimenting with clang code base,
modifying a line, and waiting 10 minutes for the linker (and restart
it if it crashed!). This slows down progress and kill motivation. (so
happy qemu is written in C :)
>
> Are your clang modifications upstreamable once cleaned up?
I am trying to get some help on clang mailing list, but it is very far
from this point without it. My changes are gross (but it seems to do
the job..).
I would be also curious to know how hard a similar (only for this
purpose) check could be implemented for gcc, perhaps with plugins.
>
> > The analysis simply checks that coroutine_fn are called from a
> > coroutine "context" (or "role"). I couldn't find any misuse in qemu
> > code base, however, a number of coroutine_fn annotations are missing.
> >
> > (I think it would make sense to squash all the "mark coroutine_fn"
> > commits if we apply them, I tried to split them by domains/maintainer
> > to ease review)
> [...]
> > 49 files changed, 299 insertions(+), 132 deletions(-)
>
> "A number of coroutine_fn annotations are missing" seems to be an
> understatement :)
>
- [Qemu-devel] [PATCH 27/35] file-posix: mark coroutine_fn, (continued)
- [Qemu-devel] [PATCH 27/35] file-posix: mark coroutine_fn, Marc-André Lureau, 2017/07/04
- [Qemu-devel] [PATCH 29/35] block: mark coroutine_fn, Marc-André Lureau, 2017/07/04
- [Qemu-devel] [PATCH 30/35] block-backend: mark coroutine_fn, Marc-André Lureau, 2017/07/04
- [Qemu-devel] [PATCH 31/35] parallels: mark coroutine_fn, Marc-André Lureau, 2017/07/04
- [Qemu-devel] [PATCH 32/35] qed: mark coroutine_fn, Marc-André Lureau, 2017/07/04
- [Qemu-devel] [PATCH 33/35] vdi: mark coroutine_fn, Marc-André Lureau, 2017/07/04
- [Qemu-devel] [PATCH 34/35] vhdx: mark coroutine_fn, Marc-André Lureau, 2017/07/04
- [Qemu-devel] [PATCH 35/35] vpc: mark coroutine_fn, Marc-André Lureau, 2017/07/04
- Re: [Qemu-devel] [PATCH 00/35] RFC: coroutine annotations & clang check, Markus Armbruster, 2017/07/05
- Re: [Qemu-devel] [PATCH 00/35] RFC: coroutine annotations & clang check,
Marc-André Lureau <=