Kevin pointed out that block-ram-registrar doesn't handle graph changes. New nodes must have all of guest RAM registered before they can process I/O requests with BDRV_REQ_REGISTERED_BUF.
These patches add a mechanism for monitoring graph changes and use it to refresh registered buffers in block-ram-registrar. Stefan Hajnoczi (3): block: add BdrvChildClass->pre_detach() and ->post_attach() block-backend: add graph change notifier API block-ram-registrar: reset when the graph changes include/block/block_int-common.h | 8 +++ include/sysemu/block-backend-global-state.h | 10 +++ block.c | 34 +++++++++ block/block-backend.c | 79 +++++++++++++++++++++ block/block-ram-registrar.c | 40 +++++++++-- block/trace-events | 2 + 6 files changed, 168 insertions(+), 5 deletions(-) -- 2.39.0