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

[Xen-devel] dom0 system call efficiency on x86_64

I found that the time wasted on calling `sendto` system call is nearly five
times than native kenrel.
After reading some paper and code, I understand that xen seems deal with
system call as follows:

    xen's subarch_percpu_traps_init installs syscall handler
    dom0 excutes syscall_init, which installs `system_call`, but
`wrmsrl(MSR_LSTAR, system_call);` does nonting in dom0.
    when userland application call sendto system call, xen's syscall_enter
handler excutes, which calls toggle_guest_mode to switch to pseudo-kernel
    create_bounce_frame call guest os's sys_sendto handler.
    guest os finaly call iret hypercall return to xen, which calls
toggle_guest_mode again to switch back to userland.

Are these correct?

If that's true, it means that the efficiency of system call in dom0 is very
terrible, because of long call path and two toggle_guest_mode calls which
will invalidates all tlbs.

Is there any optimization ways to deal with x86_64's system call?

Thanks in advence.

View this message in context: 
Sent from the Xen - Dev mailing list archive at Nabble.com.

Xen-devel mailing list



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