Hello Everyone, In many cases, if qemu has a network connection (qmp, migration, chardev, etc.) to some other server and that server dies or hangs, qemu hangs too. These patches introduce the new 'yank' out-of-band qmp command to recover from these kinds of hangs. The different subsystems register callbacks which get executed with the yank command. For example the callback can shutdown() a socket. This is intended for the colo use-case, but it can be used for other things too of course.
Regards, Lukas Straub v2: -don't touch io/ code anymore -always register yank functions -'yank' now takes a list of instances to yank -'query-yank' returns a list of yankable instances Lukas Straub (4): Introduce yank feature block/nbd.c: Add yank feature chardev/char-socket.c: Add yank feature migration: Add yank feature Makefile.objs | 1 + block/nbd.c | 101 ++++++++++++-------- chardev/char-socket.c | 24 +++++ migration/migration.c | 9 ++ migration/qemu-file-channel.c | 6 ++ migration/socket.c | 11 +++ qapi/misc.json | 45 +++++++++ softmmu/vl.c | 2 + yank.c | 174 ++++++++++++++++++++++++++++++++++ yank.h | 69 ++++++++++++++ 10 files changed, 405 insertions(+), 37 deletions(-) create mode 100644 yank.c create mode 100644 yank.h -- 2.20.1
pgpQsy_AXs28Z.pgp
Description: OpenPGP digital signature