Description of problem: boot a windows_2k3_sp2_64bit guest with '-cpu qemu64,+nx' on rhel5.9 64bit host(SandyBridge host), 'nx' was not exported to guest correctly. btw, I also test the rhel5.9 64bit guest, the 'nx' can be found via 'cat /proc/cpuinfo'. Version-Release number of selected component (if applicable): host info: # uname -r && rpm -q kvm 2.6.18-333.el5 kvm-83-258.el5 guest info: windows_2k3_sp2_64bit How reproducible: 100% Steps to Reproduce: 1.check the ‘nx’ is supported on host(should enable 'nx' in host BIOS). # cat /proc/cpuinfo 2.boot guest with '-cpu qemu64,+nx'. eg: # /usr/libexec/qemu-kvm -m 2G -smp 2,cores=2,threads=1,sockets=1 -M rhel5.6.0 -cpu qemu64,+nx -name cpu_clustering_test -drive file=/home/windows2k3_x64_sp2.raw,format=raw,media=disk,if=ide,cache=none,werror=stop,boot=on -net nic,vlan=0,model=e1000,macaddr=08:2E:5F:0A:0D:1A -net tap,sndbuf=0,vlan=0,script=/etc/qemu-ifup,downscript=no -balloon none -uuid `uuidgen` -monitor unix:/tmp/virt-nic-sluo,server,nowait -spice port=5931,disable-ticketing -qxl 1 -usbdevice tablet -soundhw ac97 -no-hpet -rtc-td-hack -no-kvm-pit-reinjection -boot c -monitor stdio 3.check cpu flag on guest. # x86info -a -f Actual results: after the step 3, can not find 'nx' flag in windows_2k3_sp2_64bit guest via ‘x86info -a -f’. Expected results: can export 'nx' flag to windows guest correctly. Additional info: host cpuinfo: processor : 7 vendor_id : GenuineIntel cpu family : 6 model : 42 model name : Intel(R) Core(TM) i7-2600 CPU @ 3.40GHz stepping : 7 cpu MHz : 1600.000 cache size : 8192 KB physical id : 0 siblings : 8 core id : 3 cpu cores : 4 apicid : 7 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm syscall nx rdtscp lm constant_tsc ida nonstop_tsc arat pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr sse4_1 sse4_2 popcnt lahf_lm bogomips : 6784.60 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 48 bits virtual power management: [8]
This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux release for currently deployed products. This request is not yet committed for inclusion in a release.
(In reply to comment #0) > Description of problem: > boot a windows_2k3_sp2_64bit guest with '-cpu qemu64,+nx' on rhel5.9 64bit > host(SandyBridge host), 'nx' was not exported to guest correctly. > btw, I also test the rhel5.9 64bit guest, the 'nx' can be found via 'cat > /proc/cpuinfo'. > Hi all, I also tried windows_2k3_sp2_64bit guest on the rhel6.4 64bit host(kernel-2.6.32-294.el6.x86_64) with '-cpu SandyBridge,+nx' as the same steps. But test result is that the 'nx' flag can not be exported to the guest correctly. So, rhel6 also hit this issue. Best wish. sluo
(In reply to comment #0) > Description of problem: > > btw, I also test the rhel5.9 64bit guest, the 'nx' can be found via 'cat > /proc/cpuinfo'. > we also can use 'x86info -a -f' to check it in guest. I paste the hex dump of the CPUID entries here, the hex dump is the actual information returned by the CPU and should allow us to see what exactly is being returned. -------------------------------------------------------------------------- CPU #2 eax in: 0x00000000, eax = 00000004 ebx = 756e6547 ecx = 6c65746e edx = 49656e69 eax in: 0x00000001, eax = 00000663 ebx = 01020800 ecx = 80000001 edx = 178bfbfd eax in: 0x00000002, eax = 00000001 ebx = 00000000 ecx = 00000000 edx = 002c307d eax in: 0x00000003, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000004, eax = 04000121 ebx = 01c0003f ecx = 0000003f edx = 00000001 eax in: 0x80000000, eax = 8000000a ebx = 68747541 ecx = 444d4163 edx = 69746e65 eax in: 0x80000001, eax = 078bfbfd ebx = 00000000 ecx = 00000002 edx = 2191abfd eax in: 0x80000002, eax = 554d4551 ebx = 72695620 ecx = 6c617574 edx = 55504320 eax in: 0x80000003, eax = 72657620 ebx = 6e6f6973 ecx = 392e3020 edx = 0000312e eax in: 0x80000004, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000005, eax = 01ff01ff ebx = 01ff01ff ecx = 40020140 edx = 40020140 eax in: 0x80000006, eax = 00000000 ebx = 42004200 ecx = 02008140 edx = 00000000 eax in: 0x80000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000008, eax = 00003028 ebx = 00000000 ecx = 00000001 edx = 00000000 eax in: 0x80000009, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x8000000a, eax = 00000001 ebx = 00000010 ecx = 00000000 edx = 00000000 According the 'Intel Software Developer Manual, Volume 2, CPUID instruction', the nx is on CPUID eax=80000001, edx, bit 20. eax in: 0x80000001, eax = 078bfbfd ebx = 00000000 ecx = 00000002 edx = 2191abfd 0x2191abfd has bit 20 set. So, the 'nx' flag can be exported to the rhel guest correctly. Thanks for ehabkos's kindly help.
(In reply to comment #3) > (In reply to comment #0) > > Description of problem: > > > > btw, I also test the rhel5.9 64bit guest, the 'nx' can be found via 'cat > > /proc/cpuinfo'. > > > we also can use 'x86info -a -f' to check it in guest. I paste the hex dump > of the CPUID entries here, the hex dump is the actual information returned > by the CPU and should allow us to see what exactly is being returned. > > According the 'Intel Software Developer Manual, Volume 2, CPUID > instruction', the nx is on CPUID eax=80000001, edx, bit 20. > eax in: 0x80000001, eax = 078bfbfd ebx = 00000000 ecx = 00000002 edx = > 2191abfd > 0x2191abfd has bit 20 set. > I also check the window guest' hex dump via 'x86info -a -f' in command prompt. the windows guest is just hiding the 'nx' flag, i check the CPUID that the nx can be export to guest correctly. -------------------------------------------------------------------------- CPU #2 eax in: 0x00000000, eax = 00000004 ebx = 756e6547 ecx = 6c65746e edx = 49656e69 eax in: 0x00000001, eax = 00000663 ebx = 00020800 ecx = 80000001 edx = 178bfbfd eax in: 0x00000002, eax = 00000001 ebx = 00000000 ecx = 00000000 edx = 002c307d eax in: 0x00000003, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x00000004, eax = 00000003 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000000, eax = 8000000a ebx = 68747541 ecx = 444d4163 edx = 69746e65 eax in: 0x80000001, eax = 078bfbfd ebx = 00000000 ecx = 00000002 edx = 2191abfd eax in: 0x80000002, eax = 554d4551 ebx = 72695620 ecx = 6c617574 edx = 55504320 eax in: 0x80000003, eax = 72657620 ebx = 6e6f6973 ecx = 392e3020 edx = 0000312e eax in: 0x80000004, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000005, eax = 01ff01ff ebx = 01ff01ff ecx = 40020140 edx = 40020140 eax in: 0x80000006, eax = 00000000 ebx = 42004200 ecx = 02008140 edx = 00000000 eax in: 0x80000007, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x80000008, eax = 00003028 ebx = 00000000 ecx = 00000001 edx = 00000000 eax in: 0x80000009, eax = 00000000 ebx = 00000000 ecx = 00000000 edx = 00000000 eax in: 0x8000000a, eax = 00000001 ebx = 00000010 ecx = 00000000 edx = 00000000 the nx is on CPUID eax=80000001, edx, bit 20. eax in: 0x80000001, eax = 078bfbfd ebx = 00000000 ecx = 00000002 edx = 2191abfd above all, this issue is not bug, close it to NOTABUG.