aboutsummaryrefslogtreecommitdiff
path: root/docs/system/managed-startup.texi
diff options
context:
space:
mode:
Diffstat (limited to 'docs/system/managed-startup.texi')
-rw-r--r--docs/system/managed-startup.texi35
1 files changed, 35 insertions, 0 deletions
diff --git a/docs/system/managed-startup.texi b/docs/system/managed-startup.texi
new file mode 100644
index 0000000000..ec168095cc
--- /dev/null
+++ b/docs/system/managed-startup.texi
@@ -0,0 +1,35 @@
+@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