[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 0/2] i386: "unavailable-features" QOM property
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PATCH 0/2] i386: "unavailable-features" QOM property |
Date: |
Mon, 22 Apr 2019 20:47:40 -0300 |
Currently, libvirt uses the "filtered-features" QOM property at
runtime to ensure no feature was accidentally disabled on VCPUs
because it's not available on the host.
However, the code for "feature-words" assumes that all missing
features have a corresponding CPUID bit, which is not true for
MSR-based features like the ones at FEAT_ARCH_CAPABILITIES.
We could extend X86CPUFeatureWordInfo to include information
about MSR features, but it's impossible to do that while keeping
compatibility with clients that (reasonably) expect all elements
of "filtered-features" to have the cpuid-* fields.
We have a field in "query-cpu-definitions" that already describes
all features that are missing on a CPU, including MSR features:
CpuDefinitionInfo.unavailable-features. The existing code for
building the unavailable-features array even uses
X86CPU::filtered_features to build the feature list.
This series adds a "unavailable-features" QOM property to X86CPU
objects that have the same semantics of "unavailable-features" on
query-cpu-definitions. The new property has the same goal of
"filtered-features", but is generic enough to let any kind of CPU
feature to be listed there without relying on low level details
like CPUID leaves or MSR numbers.
Eduardo Habkost (2):
i386: x86_cpu_list_feature_names() function
i386: "unavailable-features" QOM property
target/i386/cpu.c | 55 ++++++++++++++++++++++++++++++++++++-----------
1 file changed, 42 insertions(+), 13 deletions(-)
--
2.18.0.rc1.1.g3f1ff2140
- [Qemu-devel] [PATCH 0/2] i386: "unavailable-features" QOM property,
Eduardo Habkost <=