All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 0/2] i386: "unavailable-features" QOM property
@ 2019-04-22 23:47 ` Eduardo Habkost
  0 siblings, 0 replies; 19+ messages in thread
From: Eduardo Habkost @ 2019-04-22 23:47 UTC (permalink / raw)
  To: qemu-devel
  Cc: Paolo Bonzini, Eduardo Habkost, Jiri Denemark, Igor Mammedov,
	Richard Henderson

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

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2019-05-22 17:47 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-04-22 23:47 [Qemu-devel] [PATCH 0/2] i386: "unavailable-features" QOM property Eduardo Habkost
2019-04-22 23:47 ` Eduardo Habkost
2019-04-22 23:47 ` [Qemu-devel] [PATCH 1/2] i386: x86_cpu_list_feature_names() function Eduardo Habkost
2019-04-22 23:47   ` Eduardo Habkost
2019-04-22 23:47 ` [Qemu-devel] [PATCH 2/2] i386: "unavailable-features" QOM property Eduardo Habkost
2019-04-22 23:47   ` Eduardo Habkost
2019-05-09 13:35 ` [Qemu-devel] [PATCH 0/2] " Jiri Denemark
2019-05-09 13:56   ` Eduardo Habkost
2019-05-09 15:26     ` Jiri Denemark
2019-05-09 16:08       ` Eduardo Habkost
2019-05-10 11:33         ` Jiri Denemark
2019-05-10 20:23           ` Eduardo Habkost
2019-05-22  8:42             ` Jiri Denemark
2019-05-22 17:46               ` Eduardo Habkost
2019-05-09 16:06     ` Igor Mammedov
2019-05-09 16:36       ` Jiri Denemark
2019-05-10 20:32         ` Eduardo Habkost
2019-05-22  8:27           ` Jiri Denemark
2019-05-22 14:44             ` Eduardo Habkost

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.