[PATCH 0/4] kvm: export TSC offset to user-space

From: Luiz Capitulino
Date: Wed Aug 31 2016 - 13:05:52 EST


We need to retrieve a VM's TSC offset in order to use
the host's TSC to merge host and guest traces. This is
explained in detail in this thread:

[Qemu-devel] [RFC] host and guest kernel trace merging

Today, the only way to retrieve a VM's TSC offset is
by using the kvm_write_tsc_offset tracepoint. This has
a few problems. First, the tracepoint is only emitted
when the VM boots, which requires a reboot to get it if
the VM is already running. Second, tracepoints are not
supposed to be ABIs in case they need to be consumed by
user-space tools.

This series exports a VM's TSC offset to user-space via
debugfs. A new file called "tsc-offset" is created in
the VM's debugfs directory. For example:


This file contains one TSC offset per line, for each
vCPU. For example:

vcpu0: 18446742405270834952
vcpu1: 18446742405270834952
vcpu2: 18446742405270834952
vcpu3: 18446742405270834952

Please, see patch 4/4 for additional details.

Luiz Capitulino (4):
kvm: kvm_destroy_vm_debugfs(): check debugs_stat_data pointer
kvm: kvm_create_vm_debugfs(): cleanup on error
kvm: add stub for arch specific debugfs support
kvm: x86: export TSC offset to user-space

arch/arm/kvm/arm.c | 5 +++++
arch/mips/kvm/mips.c | 5 +++++
arch/powerpc/kvm/powerpc.c | 5 +++++
arch/s390/kvm/kvm-s390.c | 5 +++++
arch/x86/include/asm/kvm_host.h | 1 +
arch/x86/kvm/svm.c | 1 +
arch/x86/kvm/vmx.c | 8 ++++++++
arch/x86/kvm/x86.c | 35 +++++++++++++++++++++++++++++++++++
include/linux/kvm_host.h | 2 ++
virt/kvm/kvm_main.c | 22 ++++++++++++++++------
10 files changed, 83 insertions(+), 6 deletions(-)