Guofu Xiang
2009-Apr-06 13:07 UTC
[Xen-users] A question about SYSENTER/SYSEXIT in HVM guest
The CPU type of our server is Intel Xeon E5310, and the OS is Fedora 8. Xen 3.2 is installed by Compilation. When the HVM guest is x86_32 Fedora 8, the system call is implemented by instruction - *int $80h*. Our debug result by gdb is as follow. Dump of assembler code for function __kernel_vsyscall: 0xb7f87400 <__kernel_vsyscall+0>: int $0x80 0xb7f87402 <__kernel_vsyscall+2>: ret End of assembler dump. However, when the HVM guest is x86_64 Fedora 8, the system call is implemented by instruction - *syscall*. The debug result is as fellow: Dump of assembler code for function getuid: 0x00000036e7296220 <getuid+0>: mov $0x66,%eax 0x00000036e7296225 <getuid+5>: syscall 0x00000036e7296227 <getuid+7>: retq As far as I know, fast system call is implemented by *sysenter* on Intel CPU, and *syscall* on AMD CPU. Why the debug result is *syscall*, rather than *sysenter*? If the HVM guest is x86_32 Fedora 8, can we set the system call implementation by *sysenter*? In x86_64 OS, is all system call is implemented by *syscall*? Thank you for your response! _______________________________________________ Xen-users mailing list Xen-users@lists.xensource.com http://lists.xensource.com/xen-users