Am 21.01.2022 um 18:05 hat Emanuele Giuseppe Esposito geschrieben: > block coroutines functions run in different aiocontext, and are > not protected by the BQL. Therefore are I/O. > > Signed-off-by: Emanuele Giuseppe Esposito <eespo...@redhat.com> > Reviewed-by: Paolo Bonzini <pbonz...@redhat.com> > Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com> > --- > block/coroutines.h | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/block/coroutines.h b/block/coroutines.h > index c8c14a29c8..c61abd271a 100644 > --- a/block/coroutines.h > +++ b/block/coroutines.h > @@ -29,6 +29,12 @@ > > /* For blk_bs() in generated block/block-gen.c */ > #include "sysemu/block-backend.h" > +/* > + * I/O API functions. These functions are thread-safe. > + * > + * See include/block/block-io.h for more information about > + * the I/O API. > + */
Please keep an empty line between #include and the rest. As discussed in patch 2, this file will need some rearrangement. Generally, the coroutine_fn is indeed I/O, but the generated_co_wrapper is mixed "I/O or GS" and requires the BQL or a specific iothread. Kevin