On 2014-02-23 10:04, Marius Vlad wrote: > Hello, > > $ qemu --version QEMU emulator version 1.7.0 (Debian 1.7.0+dfsg-3), > Copyright (c) 2003-2008 Fabrice Bellard > > $ gcc --version gcc (Debian 4.8.2-15) 4.8.2 > > $ git rev-list HEAD | head -n1 > c0a4e715eb30944f984a92fbd4bb2cff6ee298a5 > > $ git branch master > > $ qemu-system-x86_64 -enable-kvm -device pc-testdev -device > isa-debug-exit,iobase=0xf4,iosize=0x4 \ -display none -serial stdio > -device pci-testdev -kernel x86/vmx.flat -cpu host,+vmx,+x2apic > -smp 1 enabling apic paging enabled cr0 = 80010011 cr3 = 7fff000 > cr4 = 20 PASS: test vmxon with FEATURE_CONTROL cleared PASS: test > vmxon without FEATURE_CONTROL lock PASS: test enable VMX in > FEATURE_CONTROL unhandled excecption 6 + ret=15 + echo Return value > from qemu: 15 Return value from qemu: 15 + exit 15 > > I need to add a nop statement for GCC to generate the proper jump > address. > > w/o: > > 0000000000400493 <do_write_feature_control>: 400493: 48 c7 05 > 02 f4 00 00 b0 04 40 00 movq $0x4004b0,0xf402(%rip) > # 40f8a0 <exception_return> 40049e: b9 3a 00 00 00 > mov $0x3a,%ecx 4004a3: ba 00 00 00 00 mov > $0x0,%edx 4004a8: b8 00 00 00 00 mov $0x0,%eax > 4004ad: 0f 30 wrmsr 4004af: c3 > retq > > 00000000004004b0 <init_vmcs>: 4004b0: 53 > push %rbx # <- jumps here, in case of GP > > with: > > 0000000000400493 <do_write_feature_control>: 400493: 48 c7 05 > 02 f4 00 00 af 04 40 00 movq $0x4004af,0xf402(%rip) > # 40f8a0 <exception_return> 40049e: b9 3a 00 00 00 > mov $0x3a,%ecx 4004a3: ba 00 00 00 00 mov > $0x0,%edx 4004a8: b8 00 00 00 00 mov $0x0,%eax > 4004ad: 0f 30 wrmsr 4004af: 90 > nop # <- lands here 4004b0: c3 > retq > > $ qemu-system-x86_64 -enable-kvm -device pc-testdev -device > isa-debug-exit,iobase=0xf4,iosize=0x4 \ -display none -serial stdio > -device pci-testdev -kernel x86/vmx.flat -cpu host,+vmx,+x2apic > -smp 1 enabling apic paging enabled cr0 = 80010011 cr3 = 7fff000 > cr4 = 20 PASS: test vmxon with FEATURE_CONTROL cleared PASS: test > vmxon without FEATURE_CONTROL lock PASS: test enable VMX in > FEATURE_CONTROL PASS: test FEATURE_CONTROL lock bit PASS: test > vmxon PASS: test vmptrld PASS: test vmclear PASS: test vmptrst > PASS: test vmxoff .... SUMMARY: 57 tests, 0 failures + ret=1 + echo > Return value from qemu: 1 Return value from qemu: 1 + exit 1 > Paolo, did you report these effects to gcc? Marius, could you provide a corresponding patch with a description of the affected gcc version (or a link to this thread)? Thanks, Jan -- Siemens AG, Corporate Technology, CT RTC ITP SES-DE Corporate Competence Center Embedded Linux -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html