On Tue, 1 May 2018 16:07:23 +0100 Daniel P. Berrangé <berra...@redhat.com> wrote:
> On Fri, Apr 27, 2018 at 05:05:15PM +0200, Igor Mammedov wrote: > > This option allows pausing QEMU in the new RUN_STATE_PRECONFIG state, > > allowing the configuration of QEMU from QMP before the machine jumps > > into board initialization code of machine_run_board_init() > > > > The intent is to allow management to query machine state and additionally > > configure it using previous query results within one QEMU instance > > (i.e. eliminate the need to start QEMU twice, 1st to query board specific > > parameters and 2nd for actual VM start using query results for > > additional parameters). > > > > The new option complements -S option and could be used with or without > > it. The difference is that -S pauses QEMU when the machine is completely > > initialized with all devices wired up and ready to execute guest code > > (QEMU needs only to unpause VCPUs to let guest execute its code), > > while the "preconfig" option pauses QEMU early before board specific init > > callback (machine_run_board_init) is executed and allows the configuration > > of machine parameters which will be used by board init code. > > > When early introspection/configuration is done, command 'exit-preconfig' > > should be used to exit RUN_STATE_PRECONFIG and transition to the next > > requested state (i.e. if -S is used then QEMU will pause the second > > time when board/device initialization is completed or start guest > > execution if -S isn't provided on CLI) > > If we're going to introduce this --preconfig facility I would very much > like us to ensure that we do *not* need to continue to also use -S. IOW > it would be nice to essentially consider --preconfig a better impl of > -S and stop using -S, perhaps even deprecating it for removal. That's how I view this as well, modulo removal of -S option as it still might be used for hotplugging and for early VM startup dubugging and other thing that really need ready to run machine. > What logical things does QEMU do after exiting pre-config stage, but > before starting CPUs that might be dependency for mgmt apps that would > neccessitate using both --preconfig and -S ? I've replied to your other email listing them, so lets figure out the plan of what needs to be fixed so that libvirt could switch from -S to --preconfig only. PS: (Since I've started this whole thing, I'm willing to work on gradually improving it) > Regards, > Daniel