qemu/include/hw/i386
Eduardo Habkost 1f43571604 pc: Use "min-[x]level" on compat_props
Since the automatic cpuid-level code was introduced in commit
c39c0edf9b ("target-i386: Automatically
set level/xlevel/xlevel2 when needed"), the CPU model tables just define
the default CPUID level code (set using "min-level").  Setting
"[x]level" forces CPUID level to a specific value and disable the
automatic-level logic.

But the PC compat code was not updated and the existing "[x]level"
compat properties broke compatibility for people using features that
triggered the auto-level code.  To keep previous behavior, we should set
"min-[x]level" instead of "[x]level" on compat_props.

This was not a problem for most cases, because old machine-types don't
have full-cpuid-auto-level enabled.  The only common use case it broke
was the CPUID[7] auto-level code, that was already enabled since the
first CPUID[7] feature was introduced (in QEMU 1.4.0).

This causes the regression reported at:
https://bugzilla.redhat.com/show_bug.cgi?id=1454641

Change the PC compat code to use "min-[x]level" instead of "[x]level" on
compat_props, and add new test cases to ensure we don't break this
again.

Reported-by: "Guo, Zhiyi" <zhguo@redhat.com>
Fixes: c39c0edf9b ("target-i386: Automatically set level/xlevel/xlevel2 when needed")
Cc: qemu-stable@nongnu.org
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2017-06-05 14:59:08 -03:00
..
apic_internal.h Revert "apic: save apic_delivered flag" 2017-03-27 14:41:01 +02:00
apic-msidef.h q35: ioapic: add support for emulated IOAPIC IR 2016-07-21 20:43:49 +03:00
apic.h apic: move target-dependent definitions to cpu.h 2016-05-19 16:42:28 +02:00
ich9.h tco: do not generate an NMI 2017-04-05 17:23:52 +02:00
intel_iommu.h intel_iommu: enable remote IOTLB 2017-04-20 15:22:41 -03:00
ioapic_internal.h x86: ioapic: add support for explicit EOI 2016-08-03 18:44:57 +02:00
ioapic.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
pc.h pc: Use "min-[x]level" on compat_props 2017-06-05 14:59:08 -03:00
topology.h pc: Add x86_topo_ids_from_apicid() 2016-07-20 11:58:44 -03:00
x86-iommu.h intel_iommu: support passthrough (PT) 2017-05-25 21:25:27 +03:00