Message ID | 20200716123704.6557-2-f4bug@amsat.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | block/block-backend: Let blk_attach_dev() provide helpful error | expand |
On 7/16/20 2:37 PM, Philippe Mathieu-Daudé wrote: > Add a trace event to follow devices attaching block drives: > > $ qemu-system-arm -M n800 -trace blk_\* > 9513@1594040428.738162:blk_attach_dev attaching blk 'sd0' to device 'omap2-mmc' > 9513@1594040428.738189:blk_attach_dev attaching blk 'sd0' to device 'sd-card' > qemu-system-arm: sd_init failed: blk 'sd0' already attached by device 'sd-card' Oops, the current error is: qemu-system-arm: sd_init failed: Drive 'sd0' is already in use by another device > > Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > block/block-backend.c | 1 + > block/trace-events | 1 + > 2 files changed, 2 insertions(+) > > diff --git a/block/block-backend.c b/block/block-backend.c > index 0bf0188133..63ff940ef9 100644 > --- a/block/block-backend.c > +++ b/block/block-backend.c > @@ -888,6 +888,7 @@ void blk_get_perm(BlockBackend *blk, uint64_t *perm, uint64_t *shared_perm) > */ > int blk_attach_dev(BlockBackend *blk, DeviceState *dev) > { > + trace_blk_attach_dev(blk_name(blk), object_get_typename(OBJECT(dev))); > if (blk->dev) { > return -EBUSY; > } > diff --git a/block/trace-events b/block/trace-events > index dbe76a7613..aa641c2034 100644 > --- a/block/trace-events > +++ b/block/trace-events > @@ -9,6 +9,7 @@ blk_co_preadv(void *blk, void *bs, int64_t offset, unsigned int bytes, int flags > blk_co_pwritev(void *blk, void *bs, int64_t offset, unsigned int bytes, int flags) "blk %p bs %p offset %"PRId64" bytes %u flags 0x%x" > blk_root_attach(void *child, void *blk, void *bs) "child %p blk %p bs %p" > blk_root_detach(void *child, void *blk, void *bs) "child %p blk %p bs %p" > +blk_attach_dev(const char *blk_name, const char *dev_name) "attaching blk '%s' to device '%s'" > > # io.c > bdrv_co_preadv(void *bs, int64_t offset, int64_t nbytes, unsigned int flags) "bs %p offset %"PRId64" nbytes %"PRId64" flags 0x%x" >
diff --git a/block/block-backend.c b/block/block-backend.c index 0bf0188133..63ff940ef9 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -888,6 +888,7 @@ void blk_get_perm(BlockBackend *blk, uint64_t *perm, uint64_t *shared_perm) */ int blk_attach_dev(BlockBackend *blk, DeviceState *dev) { + trace_blk_attach_dev(blk_name(blk), object_get_typename(OBJECT(dev))); if (blk->dev) { return -EBUSY; } diff --git a/block/trace-events b/block/trace-events index dbe76a7613..aa641c2034 100644 --- a/block/trace-events +++ b/block/trace-events @@ -9,6 +9,7 @@ blk_co_preadv(void *blk, void *bs, int64_t offset, unsigned int bytes, int flags blk_co_pwritev(void *blk, void *bs, int64_t offset, unsigned int bytes, int flags) "blk %p bs %p offset %"PRId64" bytes %u flags 0x%x" blk_root_attach(void *child, void *blk, void *bs) "child %p blk %p bs %p" blk_root_detach(void *child, void *blk, void *bs) "child %p blk %p bs %p" +blk_attach_dev(const char *blk_name, const char *dev_name) "attaching blk '%s' to device '%s'" # io.c bdrv_co_preadv(void *bs, int64_t offset, int64_t nbytes, unsigned int flags) "bs %p offset %"PRId64" nbytes %"PRId64" flags 0x%x"
Add a trace event to follow devices attaching block drives: $ qemu-system-arm -M n800 -trace blk_\* 9513@1594040428.738162:blk_attach_dev attaching blk 'sd0' to device 'omap2-mmc' 9513@1594040428.738189:blk_attach_dev attaching blk 'sd0' to device 'sd-card' qemu-system-arm: sd_init failed: blk 'sd0' already attached by device 'sd-card' Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> --- block/block-backend.c | 1 + block/trace-events | 1 + 2 files changed, 2 insertions(+)