Message ID | 20220121170544.2049944-23-eesposit@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | block layer: split block APIs in global state and I/O | expand |
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 <eesposit@redhat.com> > Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> > Reviewed-by: Stefan Hajnoczi <stefanha@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
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. + */ int coroutine_fn bdrv_co_check(BlockDriverState *bs, BdrvCheckResult *res, BdrvCheckMode fix);