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 Lukas Straub (5): Introduce yank feature io/channel.c,io/channel-socket.c: Add yank feature block/nbd.c: Add yank feature chardev/char-socket.c: Add yank feature migration: Add yank feature Makefile.objs | 2 + block/nbd.c | 68 ++++++++++++++++++++++++--------- chardev/char-socket.c | 8 ++++ chardev/char.c | 3 ++ include/io/channel-socket.h | 1 + include/io/channel.h | 12 ++++++ io/channel-socket.c | 29 ++++++++++++++ io/channel.c | 9 +++++ migration/channel.c | 2 + migration/migration.c | 11 ++++++ qapi/block-core.json | 5 ++- qapi/char.json | 5 ++- qapi/migration.json | 17 +++++++-- qapi/misc.json | 15 ++++++++ softmmu/vl.c | 2 + yank.c | 75 +++++++++++++++++++++++++++++++++++++ yank.h | 12 ++++++ 17 files changed, 254 insertions(+), 22 deletions(-) create mode 100644 yank.c create mode 100644 yank.h -- 2.20.1
pgpWxvIVluKlN.pgp
Description: OpenPGP digital signature