There is a regression with the "-cpu" parameter which has been introduced by the spapr CPU hotplug code: We used to allow to specify a "CPU family" name with the "-cpu" parameter when running on KVM so that the user does not need to know the gory details of the exact CPU version of the host CPU. For example, it was possible to use "-cpu POWER8" on a POWER8E host CPU. This behavior does not work anymore with the new hot-pluggable spapr-cpu-core types. Since libvirt already heavily depends on the old behavior, this is quite a severe regression in the QEMU parameter interface, thus I think these patches should still go into 2.7 if possible, to avoid that we break the "upper layers" with the final 2.7 release.
This patch series fixes the regression (and two more minor bugs) by registering a family type for the spapr-cpu-core type, too (see the last patch). However, since that name clashes with the alias types that have been defined in spapr_cpu_core.c, we first have to introduce there a better way to handle CPU aliases (see the first two patches). The third patch fixes a small memory leak along the way, and the fourth patch makes sure that we do not mess up the generic CPU family type registration anymore (which was another regression introduced with the spapr CPU hotplug code). Buglink: https://bugzilla.redhat.com/show_bug.cgi?id=1363812 Thomas Huth (5): ppc: Introduce a function to look up CPU alias strings hw/ppc/spapr: Look up CPU alias names instead of hard-coding the aliases hw/ppc/spapr: Do not leak the memory of the type string ppc/kvm: Do not mess up the generic CPU family registration ppc/kvm: Register also a generic spapr CPU core family type hw/ppc/spapr.c | 3 ++- hw/ppc/spapr_cpu_core.c | 38 +++++++++++++++++++++----------------- target-ppc/cpu.h | 1 + target-ppc/kvm.c | 19 +++++++++++-------- target-ppc/translate_init.c | 13 +++++++++++++ 5 files changed, 48 insertions(+), 26 deletions(-) -- 1.8.3.1