Bug 813128

Summary: Some flags are exposed to guest for SandyBridge host while they are not defined in dump
Product: Red Hat Enterprise Linux 6 Reporter: FuXiangChun <xfu>
Component: qemu-kvmAssignee: Eduardo Habkost <ehabkost>
Status: CLOSED NOTABUG QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 6.3CC: acathrow, areis, bsarathy, dyasny, flang, juzhang, michen, mkenneth, virt-maint
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-07-20 13:37:41 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 833129    

Description FuXiangChun 2012-04-17 02:24:22 UTC
Description of problem:
as subject. 
if boot guest with -cpu SandyBridge option guest will get below addtional flags
ht constant_tsc arch_perfmon unfair_spinlock hypervisor xsaveopt

if boot guest with -cpu host option. guest will get below additional flag.
vme  ss ht constant_tsc arch_perfmon unfair_spinlock hypervisor xsaveopt

above these flag aren't defined in /usr/libexec/qemu-kvm -cpu ?dump

Version-Release number of selected component (if applicable):
# uname -r
2.6.32-259.el6.x86_64
#rpm -qa|grep qemu
qemu-kvm-0.12.1.2-2.270.el6.x86_64

How reproducible:
always

Steps to Reproduce:
1./usr/libexec/qemu-kvm -M rhel6.3.0 -cpu SandyBridge --enable-kvm -m 4G -smp 40,sockets=2,cores=10,threads=2,maxcpus=41 -name rhel6.3 -uuid ddcbfb49-3411-1701-3c36-6bdbc00bedbb -rtc base=utc,clock=host,driftfix=slew -boot c  -drive file=/mnt/rhel6.3.raw,format=raw,if=none,id=disk0,cache=none,werror=stop,rerror=stop -device virtio-scsi-pci,id=disk0 -device scsi-hd,drive=disk0,scsi-id=0,lun=0,bootindex=1 -netdev tap,id=hostnet1 -device virtio-net-pci,netdev=hostnet1,id=net1,mac=86:12:50:a4:32:72 -spice port=5911,disable-ticketing -vga qxl -device sga -chardev socket,id=serial0,path=/var/test1,server,nowait -device isa-serial,chardev=serial0 -balloon virtio -monitor unix:/tmp/monitor1,server,nowait -monitor stdio

2./usr/libexec/qemu-kvm -cpu ?dump >host.dump (only cut SandyBridge section)
x86      SandyBridge  Intel Xeon E312xx (Sandy Bridge)                
  family 6 model 42 stepping 1 level 13 xlevel 0x8000000a vendor "GenuineIntel"
  feature_edx 078bfbfd (sse2 sse fxsr mmx clflush pse36 pat cmov mca pge mtrr sep apic cx8 mce pae msr tsc pse de fpu)
  feature_ecx 16b82203 (avx xsave aes popcnt x2apic sse4.2|sse4_2 sse4.1|sse4_1 cx16 ssse3 pclmulqdq|pclmuldq pni|sse3)
  extfeature_edx 28100800 (lm|i64 rdtscp nx|xd syscall)
  extfeature_ecx 00000001 (lahf_lm)

3. check /proc/cpuinfo in guest
cat /proc/cpuinfo > guest.cpuinfo

4. diff host.dump and guest.cpuinfo

  
Actual results:
guest extra cpu flag:
ht constant_tsc arch_perfmon unfair_spinlock hypervisor xsaveopt

Expected results:
host.dump have the same flag too.

Additional info:

Comment 2 Ademar Reis 2012-04-17 20:32:22 UTC
This bug is more about a sanity-check and should cause no major problems during real usage (acording to Eduardo). Deferring to RHEL6.4

Comment 3 Eduardo Habkost 2012-04-18 23:20:22 UTC
I asked QE to open a bug just to track/document a sanity check on the flag list, to make sure there are no real bugs hidden there. Most of the flags above are probably supposed to be set by the guest (or based on actions done by the guest), but we have to double-check this anyway.

Comment 5 RHEL Program Management 2012-07-10 06:52:01 UTC
This request was not resolved in time for the current release.
Red Hat invites you to ask your support representative to
propose this request, if still desired, for consideration in
the next release of Red Hat Enterprise Linux.

Comment 6 RHEL Program Management 2012-07-11 02:06:00 UTC
This request was erroneously removed from consideration in Red Hat Enterprise Linux 6.4, which is currently under development.  This request will be evaluated for inclusion in Red Hat Enterprise Linux 6.4.

Comment 9 langfang 2012-09-03 04:59:20 UTC
host info:
model name	: AMD Opteron(tm) Processor 6168

describe 5 senarios: 

1)boot guest with -cpu host option, guest will get below addtional flags

ht,vme ,mmxext,fxsr_opt,rep_good,extd_apicid, cmp_legacy,cr8_legacy--->these flag aren't defined in /usr/libexec/qemu-kvm -cpu ?dump

"unfair_spinlock ,hypervisor"-->these flags aren't defined in /usr/libexec/qemu-kvm -cpu ?dump and host (cat /proc/cpuinfo |grep flags)


2) boot guest with -cpu Opteron_G4 option. guest will get below additional flag.

ht,rep_good,extd_apicid,,cmp_legacy--->these flag aren't defined in /usr/libexec/qemu-kvm -cpu ?dump

"unfair_spinlock","hypervisor"-->these flags aren't defined in /usr/libexec/qemu-kvm -cpu ?dump and host (cat /proc/cpuinfo |grep flags)

3)boot guest with -cpu Opteron_G3 option.guest will get below additional flag.

ht,rep_good,extd_apicid,cmp_legacy--->these flag aren't defined in /usr/libexec/qemu-kvm -cpu ?dump

"unfair_spinlock","hypervisor"--->these flags aren't defined in /usr/libexec/qemu-kvm -cpu ?dump and host (cat /proc/cpuinfo |grep flags)

x2apic--->this flag defined in /usr/libexec/qemu-kvm -cpu ?dump and guest,but host(cat /proc/cpuinfo |grep flags) not have.

4) boot guest with -cpu Opteron_G2 option.guest will get below additional flag.

ht,rep_good,extd_apicid,cmp_legacy--->these flag aren't defined in /usr/libexec/qemu-kvm -cpu ?dump.

"unfair_spinlock","hypervisor"--->these flags aren't defined in /usr/libexec/qemu-kvm -cpu ?dump and host (cat /proc/cpuinfo |grep flags)

x2apic--->this flag defined in /usr/libexec/qemu-kvm -cpu ?dump and guest,but host(cat /proc/cpuinfo |grep flags) not have.

5)boot guest with -cpu Opteron_G1 option.guest will get below additional flag.

ht,rep_good,extd_apicid,cmp_legacy---->these flag aren't defined in /usr/libexec/qemu-kvm -cpu ?dump.

"unfair_spinlock","hypervisor"--->these flags aren't defined in /usr/libexec/qemu-kvm -cpu ?dump and host (cat /proc/cpuinfo |grep flags)

x2apic--->this flag defined in /usr/libexec/qemu-kvm -cpu ?dump and guest,but host(cat /proc/cpuinfo |grep flags) not have.