util/async: add a human-readable name to BHs for debugging
commit0f08586c7171757d77c27ee6c606e8a1c44ac6e3
authorStefan Hajnoczi <stefanha@redhat.com>
Wed, 14 Apr 2021 20:02:46 +0000 (14 21:02 +0100)
committerStefan Hajnoczi <stefanha@redhat.com>
Mon, 5 Jul 2021 10:40:32 +0000 (5 11:40 +0100)
tree353c4ebb7279d41714e393efd47fabafe1a0807f
parent711c0418c8c1ce3a24346f058b001c4c5a2f0f81
util/async: add a human-readable name to BHs for debugging

It can be difficult to debug issues with BHs in production environments.
Although BHs can usually be identified by looking up their ->cb()
function pointer, this requires debug information for the program. It is
also not possible to print human-readable diagnostics about BHs because
they have no identifier.

This patch adds a name to each BH. The name is not unique per instance
but differentiates between cb() functions, which is usually enough. It's
done by changing aio_bh_new() and friends to macros that stringify cb.

The next patch will use the name field when reporting leaked BHs.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210414200247.917496-2-stefanha@redhat.com>
include/block/aio.h
include/qemu/main-loop.h
tests/unit/ptimer-test-stubs.c
util/async.c
util/main-loop.c