Changelog: since v1: - rebase on top of x86-next tree, which shaves off already applied several patches and fixed deps on wrong tree (v1 was against my device_add_cpu tree) - add TODO comments - set cpu_globals_initialized = true early - move error_propagate() to the end of x86_cpu_parse_featurestr() since RFC: - include "target-i386: Remove xlevel & hv-spinlocks option fixups" - use Eduardo's version of: target-i386: cpu: consolidate calls of object_property_parse... - fix error handling of +-feat - add comment why +-feat is special - add comment to remove +-feat static vars - reuse x86_cpu_class_get_model_name()
Current CLI option -cpu cpux,features serves as template for all created cpus of type: cpux. However QEMU parses "features" every time it creates a cpu instance and applies them to it while doing parsing. That doesn't work well with -device/device_add infrastructure as it has no idea about cpu specific hooks that's used for parsing "features". In order to make -device/device_add utilize "-cpu features" template convert it into a set of global properties, so that every new CPU created will have them applied automatically. That also allows to parse features only once, instread of doing it for every CPU instance being created. Git tree for testing: https://github.com/imammedo/qemu.git cpu_parse_into_global_props_V2 web view: https://github.com/imammedo/qemu/commits/cpu_parse_into_global_props_V2 Eduardo Habkost (1): target-i386: cpu: consolidate calls of object_property_parse() in x86_cpu_parse_featurestr Igor Mammedov (5): target-i386: print obsolete warnings if +-features are used target-sparc: cpu: use sparc_cpu_parse_features() directly cpu: use CPUClass->parse_features() as convertor to global properties arm: virt: parse cpu_model only once pc: parse cpu features only once hw/arm/virt.c | 41 ++++++++-------- hw/i386/pc.c | 37 +++++++++++---- include/qom/cpu.h | 2 +- qom/cpu.c | 38 ++++++++++----- target-i386/cpu.c | 135 +++++++++++++++++++++++++---------------------------- target-i386/cpu.h | 1 - target-sparc/cpu.c | 7 +-- 7 files changed, 143 insertions(+), 118 deletions(-) -- 2.7.0