]> Git Repo - linux.git/commit
KVM: stats: Add fd-based API to read binary stats data
authorJing Zhang <[email protected]>
Fri, 18 Jun 2021 22:27:04 +0000 (22:27 +0000)
committerPaolo Bonzini <[email protected]>
Thu, 24 Jun 2021 15:47:57 +0000 (11:47 -0400)
commitcb082bfab59a224a49ae803fed52cd03e8d6b5e0
treea2c44bb780df8a32581373e05a054b640687cf3f
parent0193cc908b5ae8aff2e2d2997ca5d4ae26ed24d4
KVM: stats: Add fd-based API to read binary stats data

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: David Matlack <[email protected]>
Reviewed-by: Ricardo Koller <[email protected]>
Reviewed-by: Krish Sadhukhan <[email protected]>
Reviewed-by: Fuad Tabba <[email protected]>
Tested-by: Fuad Tabba <[email protected]> #arm64
Signed-off-by: Jing Zhang <[email protected]>
Message-Id: <20210618222709.1858088[email protected]>
Signed-off-by: Paolo Bonzini <[email protected]>
arch/arm64/kvm/Makefile
arch/mips/kvm/Makefile
arch/powerpc/kvm/Makefile
arch/s390/kvm/Makefile
arch/x86/kvm/Makefile
include/linux/kvm_host.h
include/linux/kvm_types.h
include/uapi/linux/kvm.h
virt/kvm/binary_stats.c [new file with mode: 0644]
This page took 0.061686 seconds and 4 git commands to generate.