On Tue, Oct 05, 2021 at 10:31:52AM -0400, Emanuele Giuseppe Esposito wrote: > +/* > + * Global state (GS) API. These functions run under the BQL lock. > + * > + * If a function modifies the graph, it also uses drain and/or > + * aio_context_acquire/release to be sure it has unique access. > + * aio_context locking is needed together with BQL because of > + * the thread-safe I/O API that concurrently runs and accesses > + * the graph without the BQL. > + * > + * It is important to note that not all of these functions are > + * necessarily limited to running under the BQL, but they would > + * require additional auditing and may small thread-safety changes
s/may/many/ > diff --git a/include/sysemu/block-backend-io.h > b/include/sysemu/block-backend-io.h > new file mode 100644 > index 0000000000..a77b2080ce > --- /dev/null > +++ b/include/sysemu/block-backend-io.h > @@ -0,0 +1,130 @@ > +/* > + * QEMU Block backends > + * > + * Copyright (C) 2014-2016 Red Hat, Inc. > + * > + * Authors: > + * Markus Armbruster <arm...@redhat.com>, > + * > + * This work is licensed under the terms of the GNU LGPL, version 2.1 > + * or later. See the COPYING.LIB file in the top-level directory. > + */ > + > +#ifndef BLOCK_BACKEND_IO_H > +#define BLOCK_BACKEND_IO_H > + > +#include "block-backend-common.h" > + > +/* > + * I/O API functions. These functions are thread-safe, and therefore > + * can run in any thread as long as they have called > + * aio_context_acquire/release(). The meaning of "they" is not 100% clear. It could be the thread or the I/O API functions. I suggest making it explicit: s/they have/the thread has/ Otherwise: Reviewed-by: Stefan Hajnoczi <stefa...@redhat.com>
signature.asc
Description: PGP signature