From Xen website,

A hypercall is to a syscall what a hypervisor is to an OS. Alternatively, a hypercall is to a hypervisor what a syscall is to a kernel. A hypercall is a software trap from a domain to the hypervisor, just as a syscall is a software trap from an application to the kernel. Domains will use hypercalls to request privileged operations like updating pagetables. Like a syscall, the hypercall is synchronous, but the return path from the hypervisor to the domain uses event channels. An event channel is a queue of asynchronous notifications, and notify of the same sorts of events that interrupts notify on native hardware. When a domain with pending events in its queue is scheduled, the OS's event-callback handler is called to take appropriate action.

  • Does the hypercall take the same time as a syscall assuming both of them are doing the same thing.
  • Is there any difference in the way hypervisor handles a hypercall than a linux kernel which handles the system call in the same way

1 Answer 1


A hypercall is slower than a syscall. This is because the hypercall has to first reach the host/hypervisor and then navigate its way to the CPU in order to get executed. Likewise for the return path. In fact, benchmarks on a similar kernel, the Hyperkernel have shown that a hypercall takes about 3 to 4 times longer (linked page's pdf page 15).

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .