Paolo Bonzini <pbonz...@redhat.com> wrote: > There should be no paths from a coroutine_fn to aio_poll, however in > practice coroutine_mixed_fn will call aio_poll in the !qemu_in_coroutine() > path. By marking mixed functions, we can track accurately the call paths > that execute entirely in coroutine context, and find more missing > coroutine_fn markers. This results in more accurate checks that > coroutine code does not end up blocking. > > If the marking were extended transitively to all functions that call > these ones, static analysis could be done much more efficiently. > However, this is a start and makes it possible to use vrc's path-based > searches to find potential bugs where coroutine_fns call blocking functions. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > include/migration/qemu-file-types.h | 4 ++-- > migration/qemu-file.c | 14 +++++++------- > migration/qemu-file.h | 6 +++--- > 3 files changed, 12 insertions(+), 12 deletions(-)
Hi Paolo I think you are still missing some qemu_get_* functions. Or puting as a question, why this functions don't need the mark? qemu_get_ubyte() qemu_get_be16() qemu_get_be32() qemu_get_be64() And the same for the functions that end with an 's. And to add insult to injury (I know, I know), some functions are marked in .c but not in the .h qemu_get_byte() cames to mind. >From my point of view, every function that is qemu_get_* or qemu_peek_* in either of the three files should get the annotation. Or what I am missing here? Later, Juan.