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 v3: -don't touch softmmu/vl.c, use __contructor__ attribute instead (Paolo Bonzini) -fix build errors -rewrite migration patch so it actually passes all tests 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 | 3 + block/nbd.c | 101 ++++++++++++-------- chardev/char-socket.c | 24 +++++ migration/channel.c | 12 +++ migration/migration.c | 18 +++- migration/multifd.c | 10 ++ migration/qemu-file-channel.c | 6 ++ qapi/misc.json | 45 +++++++++ yank.c | 174 ++++++++++++++++++++++++++++++++++ yank.h | 67 +++++++++++++ 10 files changed, 422 insertions(+), 38 deletions(-) create mode 100644 yank.c create mode 100644 yank.h -- 2.20.1
pgpD8oKCBem3g.pgp
Description: OpenPGP digital signature