• Jing Zhang's avatar
    KVM: stats: Add fd-based API to read binary stats data · cb082bfa
    Jing Zhang authored
    This commit defines the API for userspace and prepare the common
    functionalities to support per VM/VCPU binary stats data readings.
    
    The KVM stats now is only accessible by debugfs, which has some
    shortcomings this change series are supposed to fix:
    1. The current debugfs stats solution in KVM could be disabled
       when kernel Lockdown mode is enabled, which is a potential
       rick for production.
    2. The current debugfs stats solution in KVM is organized as "one
       stats per file", it is good for debugging, but not efficient
       for production.
    3. The stats read/clear in current debugfs solution in KVM are
       protected by the global kvm_lock.
    
    Besides that, there are some other benefits with this change:
    1. All KVM VM/VCPU stats can be read out in a bulk by one copy
       to userspace.
    2. A schema is used to describe KVM statistics. From userspace's
       perspective, the KVM statistics are self-describing.
    3. With the fd-based solution, a separate telemetry would be able
       to read KVM stats in a less privileged environment.
    4. After the initial setup by reading in stats descriptors, a
       telemetry only needs to read the stats data itself, no more
       parsing or setup is needed.
    Reviewed-by: default avatarDavid Matlack <dmatlack@google.com>
    Reviewed-by: default avatarRicardo Koller <ricarkol@google.com>
    Reviewed-by: default avatarKrish Sadhukhan <krish.sadhukhan@oracle.com>
    Reviewed-by: default avatarFuad Tabba <tabba@google.com>
    Tested-by: Fuad Tabba <tabba@google.com> #arm64
    Signed-off-by: default avatarJing Zhang <jingzhangos@google.com>
    Message-Id: <20210618222709.1858088-3-jingzhangos@google.com>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    cb082bfa
binary_stats.c 4.54 KB