[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] Is it possible to make hypercall from user application directly?
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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |