First page Back Continue Last page Overview Graphics
System call virtualization : Background
UML runs same binaries as the host
- int 0x80 calls into the host kernel
- UML uses PTRACE_SYSCALL to intercept system calls
- four host context switches per UML system call
The next major problem is system call virtualization. Since UML runs the same binaries as the host, they will make system calls with int 0x80 on x86. This causes them to enter the host kernel in order to run system calls. UML intercepts and nullifies them with PTRACE_SYSCALL.
The downside to this is that every UML system call requires four host context switches, to and from the tracing thread at both the start and and end of the system call. There are also a fair number of host system calls involved in this process. This makes UML system call overhead very high compared to the host.