Skip to content
  • Luiz Capitulino's avatar
    kvm: x86: export TSC information to user-space · 4f5758fc
    Luiz Capitulino authored
    This commit exports the following information to
    user-space via the newly created per-vcpu debugfs
    directory:
    
     - TSC offset (as a signed number)
     - TSC scaling ratio
     - TSC scaling ratio fractinal bits
    
    The original intention of this commit was to
    export only the TSC offset, but the TSC scaling
    information is exported for completeness.
    
    We need to retrieve the TSC offset from user-space
    in order to support the merging of host and guest
    traces in trace-cmd. Today, we use the kvm_write_tsc_offset
    tracepoint, but it has a number of problems (mainly,
    it requires a running VM to be rebooted, ftrace setup,
    and also tracepoints are not supposed to be ABIs).
    
    The merging of host and guest traces is explained
    in more detail in this thread:
    
     [Qemu-devel] [RFC] host and guest kernel trace merging
     https://lists.nongnu.org/archive/html/qemu-devel/2016-03/msg00887.html
    
    
    
    This commit creates the following files in debugfs:
    
    /sys/kernel/debug/kvm/66828-10/vcpu0/tsc-offset
    /sys/kernel/debug/kvm/66828-10/vcpu0/tsc-scaling-ratio
    /sys/kernel/debug/kvm/66828-10/vcpu0/tsc-scaling-ratio-frac-bits
    
    The last two are only created if TSC scaling is supported.
    
    Signed-off-by: default avatarLuiz Capitulino <lcapitulino@redhat.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    4f5758fc