36 lines
1.6 KiB
ReStructuredText
36 lines
1.6 KiB
ReStructuredText
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:
|
|
|
|
- initial state (after reset/power on state)
|
|
- 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
|
|
- with incoming migration, initial state will be amended with the migrated
|
|
machine state after migration completes
|
|
|
|
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:
|
|
|
|
- ``qmp_capabilities``
|
|
- ``query-qmp-schema``
|
|
- ``query-commands``
|
|
- ``query-status``
|
|
- ``x-exit-preconfig``
|