qemu-e2k/include/sysemu
Igor Mammedov 047f7038f5 cli: add --preconfig option
This option allows pausing QEMU in the new RUN_STATE_PRECONFIG state,
allowing the configuration of QEMU from QMP before the machine jumps
into board initialization code of machine_run_board_init()

The intent is to allow management to query machine state and additionally
configure it using previous query results within one QEMU instance
(i.e. eliminate the need to start QEMU twice, 1st to query board specific
parameters and 2nd for actual VM start using query results for
additional parameters).

The new option complements -S option and could be used with or without
it. The difference is that -S pauses QEMU when the machine is completely
initialized with all devices wired up and ready to execute guest code
(QEMU needs only to unpause VCPUs to let guest execute its code),
while the "preconfig" option pauses QEMU early before board specific init
callback (machine_run_board_init) is executed and allows the configuration
of machine parameters which will be used by board init code.

When early introspection/configuration is done, command 'exit-preconfig'
should be used to exit RUN_STATE_PRECONFIG and transition to the next
requested state (i.e. if -S is used then QEMU will pause the second
time when board/device initialization is completed or start guest
execution if -S isn't provided on CLI)

PS:
Initially 'preconfig' is planned to be used for configuring numa
topology depending on board specified possible cpus layout.

Signed-off-by: Igor Mammedov <imammedo@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <1526059483-42847-1-git-send-email-imammedo@redhat.com>
[ehabkost: Changed "since 2.13" to "since 3.0"]
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2018-05-30 13:19:14 -03:00
..
accel.h AccelClass: Introduce accel_setup_post 2018-04-26 16:29:50 +01:00
arch_init.h RISC-V Build Infrastructure 2018-03-07 08:30:28 +13:00
balloon.h qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
block-backend.h block: Introduce buf register API 2018-02-08 09:22:03 +08:00
blockdev.h blockdev: Make orphaned -drive fatal 2017-02-21 13:17:45 +01:00
bt.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
cpus.h migration: Mark CPU states dirty before incoming migration/loadvm 2017-06-06 08:53:24 +10:00
cryptodev-vhost-user.h cryptodev-vhost-user: set the key length 2018-03-01 18:26:17 +02:00
cryptodev-vhost.h cryptodev: add vhost-user as a new cryptodev backend 2018-03-01 18:26:17 +02:00
cryptodev.h cryptodev: add vhost support 2018-03-01 18:26:17 +02:00
device_tree.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
dma.h dma-helpers: explicitly pass alignment into DMA helpers 2016-10-27 16:29:13 -04:00
dump-arch.h dump: allow target to set the physical base 2016-01-15 14:40:25 +00:00
dump.h qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
hax.h hax: Support guest RAM sizes of 4GB or more 2018-02-13 11:44:13 +01:00
hostmem.h memdev: remove "id" property 2018-05-09 00:13:37 +02:00
hvf.h Clean up includes 2018-02-09 05:05:11 +01:00
hw_accel.h Add the WHPX acceleration enlightenments 2018-02-07 14:09:26 +01:00
iothread.h vl: introduce vm_shutdown() 2018-03-08 17:38:51 +00:00
kvm.h x86/cpu: use standard-headers/asm-x86.kvm_para.h 2018-05-23 03:14:41 +03:00
kvm_int.h kvm-all: add support for multiple address spaces 2015-07-06 17:59:43 +02:00
memory_mapping.h Use scripts/clean-includes to drop redundant qemu/typedefs.h 2016-03-22 22:20:16 +01:00
numa.h numa: split out NumaOptions parsing into set_numa_options() 2018-05-30 13:08:11 -03:00
os-posix.h util: drop old utimensat() compat code 2017-05-25 10:30:14 +02:00
os-win32.h log: Add locking to large logging blocks 2016-11-01 10:29:03 -06:00
qtest.h include: Clean up includes 2016-02-23 12:43:05 +00:00
replay.h replay: make locking visible outside replay code 2018-03-12 16:12:50 +01:00
reset.h hw: move reset handlers from vl.c to hw/core 2017-01-16 17:52:35 +01:00
rng-random.h rng-random: rename RndRandom to RngRandom 2016-05-23 12:18:43 +05:30
rng.h rng: switch request queue to QSIMPLEQ 2016-03-08 12:54:14 +05:30
seccomp.h seccomp: Don't include libseccomp from QEMU header 2017-09-22 09:48:33 +01:00
sev.h kvm: introduce memory encryption APIs 2018-03-13 12:04:03 +01:00
sysemu.h cli: add --preconfig option 2018-05-30 13:19:14 -03:00
tpm.h Include less of the generated modular QAPI headers 2018-03-02 13:45:50 -06:00
tpm_backend.h Drop superfluous includes of qapi-types.h and test-qapi-types.h 2018-02-09 05:05:11 +01:00
watchdog.h Include less of the generated modular QAPI headers 2018-03-02 13:45:50 -06:00
whpx.h Add the WHPX vcpu API 2018-02-07 14:09:26 +01:00
xen-mapcache.h xen/mapcache: introduce xen_replace_cache_entry() 2017-07-18 14:16:09 -07:00