mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 12:43:29 +02:00
kvm: stats: tell userspace which values are boolean
Some of the statistics values exported by KVM are always only 0 or 1. It can be useful to export this fact to userspace so that it can track them specially (for example by polling the value every now and then to compute a % of time spent in a specific state). Therefore, add "boolean value" as a new "unit". While it is not exactly a unit, it walks and quacks like one. In particular, using the type would be wrong because boolean values could be instantaneous or peak values (e.g. "is the rmap allocated?") or even two-bucket histograms (e.g. "number of posted vs. non-posted interrupt injections"). Suggested-by: Amneesh Singh <natto@weirdnatto.in> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
@@ -1822,6 +1822,15 @@ struct _kvm_stats_desc {
|
||||
STATS_DESC_PEAK(SCOPE, name, KVM_STATS_UNIT_NONE, \
|
||||
KVM_STATS_BASE_POW10, 0)
|
||||
|
||||
/* Instantaneous boolean value, read only */
|
||||
#define STATS_DESC_IBOOLEAN(SCOPE, name) \
|
||||
STATS_DESC_INSTANT(SCOPE, name, KVM_STATS_UNIT_BOOLEAN, \
|
||||
KVM_STATS_BASE_POW10, 0)
|
||||
/* Peak (sticky) boolean value, read/write */
|
||||
#define STATS_DESC_PBOOLEAN(SCOPE, name) \
|
||||
STATS_DESC_PEAK(SCOPE, name, KVM_STATS_UNIT_BOOLEAN, \
|
||||
KVM_STATS_BASE_POW10, 0)
|
||||
|
||||
/* Cumulative time in nanosecond */
|
||||
#define STATS_DESC_TIME_NSEC(SCOPE, name) \
|
||||
STATS_DESC_CUMULATIVE(SCOPE, name, KVM_STATS_UNIT_SECONDS, \
|
||||
@@ -1853,7 +1862,7 @@ struct _kvm_stats_desc {
|
||||
HALT_POLL_HIST_COUNT), \
|
||||
STATS_DESC_LOGHIST_TIME_NSEC(VCPU_GENERIC, halt_wait_hist, \
|
||||
HALT_POLL_HIST_COUNT), \
|
||||
STATS_DESC_ICOUNTER(VCPU_GENERIC, blocking)
|
||||
STATS_DESC_IBOOLEAN(VCPU_GENERIC, blocking)
|
||||
|
||||
extern struct dentry *kvm_debugfs_dir;
|
||||
|
||||
|
Reference in New Issue
Block a user