xref: /openbmc/qemu/docs/system/managed-startup.rst (revision f4c4357fbfca0fb14e477bf661ae7384b4b9b283)
1*2f4325dfSPeter MaydellManaged start up options
2*2f4325dfSPeter Maydell========================
3*2f4325dfSPeter Maydell
4*2f4325dfSPeter MaydellIn system mode emulation, it's possible to create a VM in a paused
5*2f4325dfSPeter Maydellstate using the ``-S`` command line option. In this state the machine
6*2f4325dfSPeter Maydellis completely initialized according to command line options and ready
7*2f4325dfSPeter Maydellto execute VM code but VCPU threads are not executing any code. The VM
8*2f4325dfSPeter Maydellstate in this paused state depends on the way QEMU was started. It
9*2f4325dfSPeter Maydellcould be in:
10*2f4325dfSPeter Maydell
11*2f4325dfSPeter Maydell- initial state (after reset/power on state)
12*2f4325dfSPeter Maydell- with direct kernel loading, the initial state could be amended to execute
13*2f4325dfSPeter Maydell  code loaded by QEMU in the VM's RAM and with incoming migration
14*2f4325dfSPeter Maydell- with incoming migration, initial state will be amended with the migrated
15*2f4325dfSPeter Maydell  machine state after migration completes
16*2f4325dfSPeter Maydell
17*2f4325dfSPeter MaydellThis paused state is typically used by users to query machine state and/or
18*2f4325dfSPeter Maydelladditionally configure the machine (by hotplugging devices) in runtime before
19*2f4325dfSPeter Maydellallowing VM code to run.
20*2f4325dfSPeter Maydell
21*2f4325dfSPeter MaydellHowever, at the ``-S`` pause point, it's impossible to configure options
22*2f4325dfSPeter Maydellthat affect initial VM creation (like: ``-smp``/``-m``/``-numa`` ...) or
23*2f4325dfSPeter Maydellcold plug devices. The experimental ``--preconfig`` command line option
24*2f4325dfSPeter Maydellallows pausing QEMU before the initial VM creation, in a "preconfig" state,
25*2f4325dfSPeter Maydellwhere additional queries and configuration can be performed via QMP
26*2f4325dfSPeter Maydellbefore moving on to the resulting configuration startup. In the
27*2f4325dfSPeter Maydellpreconfig state, QEMU only allows a limited set of commands over the
28*2f4325dfSPeter MaydellQMP monitor, where the commands do not depend on an initialized
29*2f4325dfSPeter Maydellmachine, including but not limited to:
30*2f4325dfSPeter Maydell
31*2f4325dfSPeter Maydell- ``qmp_capabilities``
32*2f4325dfSPeter Maydell- ``query-qmp-schema``
33*2f4325dfSPeter Maydell- ``query-commands``
34*2f4325dfSPeter Maydell- ``query-status``
35*2f4325dfSPeter Maydell- ``x-exit-preconfig``
36