On 2012-02-10 20:31, Luiz Capitulino wrote: > This is a rebase of Anthony's conversion, from his glib branch; and this is > also the beginning of the conversion of complex commands to the qapi. > > There are two important changes that should be observed: > > 1. patch 5/6 purges the 'mon' object from migration code. One of the > consequences is that we lose the ability to print progress status to > the HMP user (esp. in block migration)
This smells extremely fishy. You have some common "monitor" context in both cases, means something that decides where suspend/resume takes effect or where to pick up file descriptors from. If the exiting Monitor object is not generic enough, introduce some super-class and use that in common services. Or make sure that a variant of Monitor is also valid over QMP. But don't remove the dependency from the API, while reintroducing it via the backdoor of cur_mon. Jan > > 2. The HMP hmp_migrate() command is a bit tricky when in non-detached > mode: we lock the monitor and poll for the migration status from a > timer handler. This obviously assumes that migration will end at some > point > > Besides, this is missing testing with libvirt. I plan to do it shortly, but > wanted to get some review in parallel. > > arch_init.c | 2 +- > block-migration.c | 58 ++++++++++++++++++----------------------- > check-qdict.c | 29 ++++++++++++++++++++ > error.c | 12 ++++++++ > error.h | 5 +++ > hmp-commands.hx | 3 +- > hmp.c | 51 ++++++++++++++++++++++++++++++++++++ > hmp.h | 1 + > migration-fd.c | 2 +- > migration.c | 74 > +++++++++++++++-------------------------------------- > migration.h | 5 +--- > monitor.c | 5 +++ > monitor.h | 1 + > qapi-schema.json | 21 +++++++++++++++ > qdict.c | 18 +++++++++++++ > qdict.h | 1 + > qerror.c | 8 +++++ > qerror.h | 6 ++++ > qmp-commands.hx | 9 +----- > savevm.c | 42 ++++++++++++++--------------- > sysemu.h | 11 +++---- > vmstate.h | 3 +- > 22 files changed, 235 insertions(+), 132 deletions(-) > > -- Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux