|  |  | 
  
    |  |  | 
 
  |   |  | 
  
    |  |  | 
  
    |  |  | 
  
    |   xen-devel
Re: [Xen-devel] Is it possible to make hypercall from user	application d 
| On Tue, 2008-03-11 at 21:42 -0500, weiming wrote:
> After some study, I got the following understanding. Please correct me
> if I'm wrong; otherwise, you can just say "correct".
> 
> 1. In x86_64 mode, xen sets the LSTAR (the EIP of syscall target), and
> this value keeps constant. This value is code of "syscall_enter"
> defined in xen/arch/x86/x86_64/entry.S
correct.
> 2. 
> In ENTRY(syscall_enter)
> ...
> ...
> testb $TF_kernel_mode, VCPU_thread_flag(%rbx)
> jz switch_to_kernel
> 
> /*hypercall*/
> ...
> 
> so whenever a syscall is issued, "syscall_enter" checks the context.
> If it decides that the context is "kernel mode", it will treat the
> syscall as a  plain "system call" from user applications. So it goes
> to "jz switch_to_kernel". Otherwise, it will think it's a hypercall
> issued from guest domains.
correct. PT switching is then done in
create_bounce_frame/toggle_guest_mode. 
> 3. So an application can't make "hypercalls" directly because it's
> context is "kernel mode", so it will always be treated as a system
> call to the guest OS.
believe you mean "user mode", but otherwise correct.
best,
daniel
-- 
Daniel Stodden
LRR     -      Lehrstuhl für Rechnertechnik und Rechnerorganisation
Institut für Informatik der TU München             D-85748 Garching
http://www.lrr.in.tum.de/~stodden         mailto:stodden@xxxxxxxxxx
PGP Fingerprint: F5A4 1575 4C56 E26A 0B33  3D80 457E 82AE B0D8 735B
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 | 
 |  | 
  
    |  |  |