|
@@ -0,0 +1,35 @@
|
|
|
+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``
|