36 lines
1.6 KiB
Plaintext
36 lines
1.6 KiB
Plaintext
@node managed_startup
|
|
@section Managed start up options
|
|
|
|
In system mode emulation, it's possible to create a VM in a paused state using
|
|
the -S command line option. In this state the machine is completely initialized
|
|
according to command line options and ready to execute VM code but VCPU threads
|
|
are not executing any code. The VM state in this paused state depends on the way
|
|
QEMU was started. It could be in:
|
|
@table @asis
|
|
@item initial state (after reset/power on state)
|
|
@item with direct kernel loading, the initial state could be amended to execute
|
|
code loaded by QEMU in the VM's RAM and with incoming migration
|
|
@item with incoming migration, initial state will by amended with the migrated
|
|
machine state after migration completes.
|
|
@end table
|
|
|
|
This paused state is typically used by users to query machine state and/or
|
|
additionally configure the machine (by hotplugging devices) in runtime before
|
|
allowing VM code to run.
|
|
|
|
However, at the -S pause point, it's impossible to configure options that affect
|
|
initial VM creation (like: -smp/-m/-numa ...) or cold plug devices. The
|
|
experimental --preconfig command line option allows pausing QEMU
|
|
before the initial VM creation, in a ``preconfig'' state, where additional
|
|
queries and configuration can be performed via QMP before moving on to
|
|
the resulting configuration startup. In the preconfig state, QEMU only allows
|
|
a limited set of commands over the QMP monitor, where the commands do not
|
|
depend on an initialized machine, including but not limited to:
|
|
@table @asis
|
|
@item qmp_capabilities
|
|
@item query-qmp-schema
|
|
@item query-commands
|
|
@item query-status
|
|
@item x-exit-preconfig
|
|
@end table
|