[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] A question about SYSENTER/SYSEXIT in HVM guest


  • To: Xen-devel@xxxxxxxxxxxxxxxxxxx
  • From: Guofu Xiang <whxgf1984@xxxxxxxxx>
  • Date: Mon, 6 Apr 2009 21:11:52 +0800
  • Cc:
  • Delivery-date: Mon, 06 Apr 2009 06:12:17 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=bPHWLm8VSTQ/BapAXLAzYYzpLsVhJIzpKU66Pt0xiaWKS/4SasZyF71uTospCIRzBk qbbVBuw194QYX5Yb04gxqvfT4qQTdZR4Um9OY+ek4VtEIonqPCtGTHC8VaITkfxFb4nP MmsGgcd1CH7g7+LAsk1JMxVLsD8yTp+hZ2dEY=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

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 implemented by syscall?
 
Thank you for your response!
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.