[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 17/22] vl: load plugins as late as possible
From: |
Paolo Bonzini |
Subject: |
[PATCH 17/22] vl: load plugins as late as possible |
Date: |
Wed, 21 Oct 2020 16:57:11 -0400 |
There is no need to load plugins in the middle of default device processing,
move -plugin handling just before preconfig is entered.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
softmmu/vl.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/softmmu/vl.c b/softmmu/vl.c
index 8577667b8f..75e57133ad 100644
--- a/softmmu/vl.c
+++ b/softmmu/vl.c
@@ -125,6 +125,7 @@ static const char *boot_order;
static const char *boot_once;
static const char *incoming;
static const char *loadvm;
+static QemuPluginList plugin_list = QTAILQ_HEAD_INITIALIZER(plugin_list);
enum vga_retrace_method vga_retrace_method = VGA_RETRACE_DUMB;
int mem_prealloc; /* force preallocation of physical target memory */
int display_opengl;
@@ -3064,12 +3065,18 @@ void qemu_finish_machine_init(void)
MachineClass *machine_class = MACHINE_GET_CLASS(current_machine);
DisplayState *ds;
+ /* from here on runstate is RUN_STATE_PRELAUNCH */
+
if (machine_class->default_ram_id && current_machine->ram_size &&
numa_uses_legacy_mem() && !current_machine->ram_memdev_id) {
create_default_memdev(current_machine, mem_path);
}
- /* from here on runstate is RUN_STATE_PRELAUNCH */
+ /* process plugin before CPUs are created, but once -smp has been parsed */
+ if (qemu_plugin_load_list(&plugin_list)) {
+ exit(1);
+ }
+
machine_run_board_init(current_machine);
/*
@@ -3196,7 +3203,6 @@ void qemu_init(int argc, char **argv, char **envp)
Error *err = NULL;
bool have_custom_ram_size;
BlockdevOptionsQueue bdo_queue = QSIMPLEQ_HEAD_INITIALIZER(bdo_queue);
- QemuPluginList plugin_list = QTAILQ_HEAD_INITIALIZER(plugin_list);
qemu_add_opts(&qemu_drive_opts);
qemu_add_drive_opts(&qemu_legacy_drive_opts);
@@ -4164,11 +4170,6 @@ void qemu_init(int argc, char **argv, char **envp)
machine_class->default_machine_opts, 0);
}
- /* process plugin before CPUs are created, but once -smp has been parsed */
- if (qemu_plugin_load_list(&plugin_list)) {
- exit(1);
- }
-
qemu_opts_foreach(qemu_find_opts("device"),
default_driver_check, NULL, NULL);
qemu_opts_foreach(qemu_find_opts("global"),
--
2.26.2
- [PATCH 05/22] vl: extract validation of -smp to machine.c, (continued)
- [PATCH 05/22] vl: extract validation of -smp to machine.c, Paolo Bonzini, 2020/10/21
- [PATCH 01/22] semihosting: fix order of initialization functions, Paolo Bonzini, 2020/10/21
- [PATCH 11/22] vl: move prelaunch part of qemu_init to a new function, Paolo Bonzini, 2020/10/21
- [PATCH 19/22] vl: extract default devices to separate functions, Paolo Bonzini, 2020/10/21
- [PATCH 18/22] vl: move semihosting command line fallback to qemu_finish_machine_init, Paolo Bonzini, 2020/10/21
- [PATCH 20/22] vl: move CHECKPOINT_INIT after preconfig, Paolo Bonzini, 2020/10/21
- [PATCH 22/22] vl: separate qemu_create_late_backends, Paolo Bonzini, 2020/10/21
- [PATCH 10/22] vl: extract qemu_init_subsystems, Paolo Bonzini, 2020/10/21
- [PATCH 14/22] vl: preconfig and loadvm are mutually exclusive, Paolo Bonzini, 2020/10/21
- [PATCH 17/22] vl: load plugins as late as possible,
Paolo Bonzini <=
- [PATCH 13/22] vl: extract various command line validation snippets to a new function, Paolo Bonzini, 2020/10/21
- [PATCH 16/22] vl: create "-net nic -net user" default earlier, Paolo Bonzini, 2020/10/21
- [PATCH 09/22] vl: move various initialization routines out of qemu_init, Paolo Bonzini, 2020/10/21
- [PATCH 12/22] vl: move bios_name out of softmmu/vl.c, Paolo Bonzini, 2020/10/21
- [PATCH 21/22] vl: separate qemu_create_early_backends, Paolo Bonzini, 2020/10/21