git tree for testing: https://github.com/imammedo/qemu/tree/x86-cpu-properties.v4
Rebased on top of a9321a4d49d "x86: Implement SMEP and SMAP". Igor Mammedov (23): target-i386: return Error from cpu_x86_find_by_name() target-i386: cpu_x86_register(): report error from property setter target-i386: if x86_cpu_realize() failed report error and do cleanup target-i386: filter out not TCG features if running without kvm at realize time target-i386: move out CPU features initialization in separate func target-i386: xlevel should be more than 0x80000000, move fixup into setter target-i386: convert cpuid features into properties target-i386: add stubs for hyperv_(vapic_recommended|relaxed_timing_enabled|get_spinlock_retries)() target-i386: convert 'hv_spinlocks' feature into property target-i386: convert 'hv_relaxed' feature into property target-i386: convert 'hv_vapic' feature into property target-i386: convert 'check' and 'enforce' features into properties add visitor for parsing hz[KMG] input string target-i386: use visit_type_hz to parse tsc_freq property value target-i386: introduce vendor-override property target-i386: use define for cpuid vendor string size target-i386: postpone cpuid_level update to realize time target-i386: replace uint32_t vendor fields by vendor string in x86_def_t target-i386: parse cpu_model string into set of stringified properties target-i386: use properties to set/unset user specified features on CPU target-i386: move init of "hypervisor" feature into CPU initializer from cpudef target-i386: move default init of cpuid_kvm_features bitmap into CPU initializer from cpudef target-i386: cleanup cpu_x86_find_by_name(), only fill x86_def_t in it qapi/qapi-visit-core.c | 11 + qapi/qapi-visit-core.h | 2 + qapi/string-input-visitor.c | 22 ++ target-i386/cpu.c | 748 ++++++++++++++++++++++++++----------------- target-i386/cpu.h | 10 +- target-i386/helper.c | 9 +- target-i386/hyperv.h | 9 +- 7 files changed, 512 insertions(+), 299 deletions(-)