vl: Document dependencies hiding in global and compat props

Signed-off-by: Markus Armbruster <armbru@redhat.com>
Message-Id: <20190401090827.20793-5-armbru@redhat.com>
Reviewed-by: Igor Mammedov <imammedo@redhat.com>
This commit is contained in:
Markus Armbruster 2019-04-01 11:08:26 +02:00
parent daff7f0bbe
commit 0427b6257e

24
vl.c
View File

@ -4286,16 +4286,36 @@ int main(int argc, char **argv, char **envp)
current_machine->maxram_size = maxram_size;
current_machine->ram_slots = ram_slots;
/*
* Note: uses machine properties such as kernel-irqchip, must run
* after machine_set_property().
*/
configure_accelerator(current_machine, argv[0]);
/*
* Beware, QOM objects created before this point miss global and
* compat properties.
*
* Global properties get set up by qdev_prop_register_global(),
* called from user_register_global_props(), and certain option
* desugaring. Also in CPU feature desugaring (buried in
* parse_cpu_model()), which happens below this point, but may
* only target the CPU type, which can only be created after
* parse_cpu_model() returned the type.
*
* Machine compat properties: object_set_machine_compat_props().
* Accelerator compat props: object_set_accelerator_compat_props(),
* called from configure_accelerator().
*/
if (!qtest_enabled() && machine_class->deprecation_reason) {
error_report("Machine type '%s' is deprecated: %s",
machine_class->name, machine_class->deprecation_reason);
}
/*
* Migration object can only be created after global properties
* are applied correctly.
* Note: creates a QOM object, must run only after global and
* compat properties have been set up.
*/
migration_object_init();