Message ID | 20201021205716.2359430-18-pbonzini@redhat.com |
---|---|
State | New |
Headers | show |
Series | cleanup qemu_init and make sense of command line processing | expand |
On 10/21/20 10:57 PM, Paolo Bonzini wrote: > 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 */ > + Please move this comment in your patch #11: "vl: move prelaunch part of qemu_init to a new function" Then: Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> > 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"), >
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"),
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(-)