qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC 0/6] i386: CPU: remove duplicate feature names
@ 2012-08-17 17:53 Eduardo Habkost
  2012-08-17 17:53 ` [Qemu-devel] [RFC 1/6] x86_cpudef_setup: coding style change Eduardo Habkost
                   ` (6 more replies)
  0 siblings, 7 replies; 18+ messages in thread
From: Eduardo Habkost @ 2012-08-17 17:53 UTC (permalink / raw)
  To: qemu-devel
  Cc: aliguori, stefanha, gleb, jan.kiszka, mtosatti, mdroth,
	blauwirbel, avi, pbonzini, akong, lersek, afaerber

The problem:

 - Some features are report at the same time on both CPUID[1].EDX and
   CPUID[8000_0001].EDX on AMD CPUs (e.g. fpu, tsc, msr, pae, mmx).
 - "-cpu <model>,+feature" should enable the bit only on CPUID[1] if
   it's not an AMD CPU, but it should enable the bit on both CPUID[1] and
   CPUID[8000_0001] if it's an AMD CPU.
 - The same should happen when implementing CPU properties: setting the
   property that enables a feature should set the duplicate CPUID[8000_0001].EDX
   bit only if CPU vendor is AMD.

Reference: http://article.gmane.org/gmane.comp.emulators.qemu/166024

The solution implemented by this series is:
 - On the CPU model table and while parsing CPU options/properties, set the bit
   only on CPUID[1] (the x86_def_t.features field).
 - When finishing initialization of the CPU cpuid fields, duplicate those
   feature bits on cpuid_ext2_features if and only if the CPU vendor is AMD.

This series also removes the "cpudef" config support, to make this work easier
(because the cpudef interface is based on low-level CPUID leaf+register
specification, instead of a set of higher-level per-feature object properties).

Eduardo Habkost (6):
  x86_cpudef_setup: coding style change
  i386: kill cpudef config section support
  i386: kvm: bit 10 of CPUID[8000_0001].EDX is reserved
  i386: kvm: use a #define for the set of alias feature bits
  i386: cpu: eliminate duplicate feature names
  i386: -cpu help: remove reference to specific CPUID leaves/registers

 target-i386/cpu.c | 153 +++++++++++++-----------------------------------------
 target-i386/cpu.h |  12 +++++
 target-i386/kvm.c |   2 +-
 3 files changed, 50 insertions(+), 117 deletions(-)

-- 
1.7.11.2

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

end of thread, other threads:[~2012-09-06 17:55 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-08-17 17:53 [Qemu-devel] [RFC 0/6] i386: CPU: remove duplicate feature names Eduardo Habkost
2012-08-17 17:53 ` [Qemu-devel] [RFC 1/6] x86_cpudef_setup: coding style change Eduardo Habkost
2012-09-05  8:44   ` Igor Mammedov
2012-08-17 17:53 ` [Qemu-devel] [RFC 2/6] i386: kill cpudef config section support Eduardo Habkost
2012-08-20 10:51   ` Andreas Färber
2012-08-20 12:00   ` Igor Mammedov
2012-08-20 12:30     ` Eduardo Habkost
2012-09-05  9:09   ` Igor Mammedov
2012-09-05  9:39     ` Igor Mammedov
2012-09-06 17:55       ` Eduardo Habkost
2012-08-17 17:53 ` [Qemu-devel] [RFC 3/6] i386: kvm: bit 10 of CPUID[8000_0001].EDX is reserved Eduardo Habkost
2012-09-05  8:48   ` Igor Mammedov
2012-08-17 17:53 ` [Qemu-devel] [RFC 4/6] i386: kvm: use a #define for the set of alias feature bits Eduardo Habkost
2012-09-05  8:53   ` Igor Mammedov
2012-08-17 17:53 ` [Qemu-devel] [RFC 5/6] i386: cpu: eliminate duplicate feature names Eduardo Habkost
2012-08-17 17:53 ` [Qemu-devel] [RFC 6/6] i386: -cpu help: remove reference to specific CPUID leaves/registers Eduardo Habkost
2012-09-05 11:47   ` Igor Mammedov
2012-08-20 12:02 ` [Qemu-devel] [RFC 0/6] i386: CPU: remove duplicate feature names Igor Mammedov

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).