Low-Overhead Ring-Buffer of Kernel Tracing and Tracing Across host OS and Guest OS
"IVRing", a low-overhead ring-buffer to send tracing data from guest OSs to a host OS, is introduced in a virtualization system. IVRing does not use network I/O which causes a high overhead. IVRing takes advantage of IVShmem, which is a virtual RAM device, as a communication path for tracing data. Since IVShmem allows to sharing a memory region between guests and host applications via POSIX shmem, data passing is possible without memory copying. A writer on a guest OS records trace data to the ring-buffer. On the other hand, a reader on a host OS directly refers to a part of the ring-buffer and outputs tracing data. Therefore, there is no need to copy tracing data from guests to a host by using IVRing. This method helps for system monitoring such as in virtualized mission-critical systems or cloud systems.