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

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).

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.