On Wed, May 09, 2018 at 03:53:05PM -0400, Thomas Tai wrote: > The Linux kernel commit b40000325044 ("virtio_balloon: add array > of stat names") defines an array of stat name strings for consumers > of the virtio interface to use via the virtio_balloon.h header > file, rather than requiring each consumer to define its own. But at > present, the stat names defined in this array by the Linux kernel > do not match up with those defined internally by QEMU. > > This patch fixes this inconsistency by importing the header file > from linux and use the new macro to construct the balloon_stat_names > array. > > Signed-off-by: Jonathan Helman <jonathan.hel...@oracle.com> > Signed-off-by: Thomas Tai <thomas....@oracle.com> > Cc: Rob Gardner <rob.gard...@oracle.com> > --- > docs/virtio-balloon-stats.txt | 2 ++ > hw/virtio/virtio-balloon.c | 13 ++----------- > include/standard-headers/linux/virtio_balloon.h | 19 ++++++++++++++++++- > 3 files changed, 22 insertions(+), 12 deletions(-) > > diff --git a/docs/virtio-balloon-stats.txt b/docs/virtio-balloon-stats.txt > index 7a66d25..7c69fdb 100644 > --- a/docs/virtio-balloon-stats.txt > +++ b/docs/virtio-balloon-stats.txt > @@ -34,6 +34,8 @@ which will return a dictionary containing: > - stat-total-memory > - stat-available-memory > - stat-disk-caches > + - stat-hugetlb-allocations > + - stat-hugetlb-failures > > o A key named last-update, which contains the last stats update > timestamp in seconds. Since this timestamp is generated by the host, > diff --git a/hw/virtio/virtio-balloon.c b/hw/virtio/virtio-balloon.c > index f456cea..646f2e0 100644 > --- a/hw/virtio/virtio-balloon.c > +++ b/hw/virtio/virtio-balloon.c > @@ -43,17 +43,8 @@ static void balloon_page(void *addr, int deflate) > } > } > > -static const char *balloon_stat_names[] = { > - [VIRTIO_BALLOON_S_SWAP_IN] = "stat-swap-in", > - [VIRTIO_BALLOON_S_SWAP_OUT] = "stat-swap-out", > - [VIRTIO_BALLOON_S_MAJFLT] = "stat-major-faults", > - [VIRTIO_BALLOON_S_MINFLT] = "stat-minor-faults", > - [VIRTIO_BALLOON_S_MEMFREE] = "stat-free-memory", > - [VIRTIO_BALLOON_S_MEMTOT] = "stat-total-memory", > - [VIRTIO_BALLOON_S_AVAIL] = "stat-available-memory", > - [VIRTIO_BALLOON_S_CACHES] = "stat-disk-caches", > - [VIRTIO_BALLOON_S_NR] = NULL > -}; > +static const char *balloon_stat_names[VIRTIO_BALLOON_S_NR] = \ > + VIRTIO_BALLOON_S_NAMES_WITH_PREFIX("stat-"); > > /* > * reset_stats - Mark all items in the stats array as unset > diff --git a/include/standard-headers/linux/virtio_balloon.h > b/include/standard-headers/linux/virtio_balloon.h > index 7b0a41b..4dbb7dc 100644 > --- a/include/standard-headers/linux/virtio_balloon.h > +++ b/include/standard-headers/linux/virtio_balloon.h > @@ -53,7 +53,24 @@ struct virtio_balloon_config { > #define VIRTIO_BALLOON_S_MEMTOT 5 /* Total amount of memory */ > #define VIRTIO_BALLOON_S_AVAIL 6 /* Available memory as in /proc */ > #define VIRTIO_BALLOON_S_CACHES 7 /* Disk caches */ > -#define VIRTIO_BALLOON_S_NR 8 > +#define VIRTIO_BALLOON_S_HTLB_PGALLOC 8 /* Hugetlb page allocations */ > +#define VIRTIO_BALLOON_S_HTLB_PGFAIL 9 /* Hugetlb page allocation > failures */ > +#define VIRTIO_BALLOON_S_NR 10 > + > +#define VIRTIO_BALLOON_S_NAMES_WITH_PREFIX(VIRTIO_BALLOON_S_NAMES_prefix) { \ > + VIRTIO_BALLOON_S_NAMES_prefix "swap-in", \ > + VIRTIO_BALLOON_S_NAMES_prefix "swap-out", \ > + VIRTIO_BALLOON_S_NAMES_prefix "major-faults", \ > + VIRTIO_BALLOON_S_NAMES_prefix "minor-faults", \ > + VIRTIO_BALLOON_S_NAMES_prefix "free-memory", \ > + VIRTIO_BALLOON_S_NAMES_prefix "total-memory", \ > + VIRTIO_BALLOON_S_NAMES_prefix "available-memory", \ > + VIRTIO_BALLOON_S_NAMES_prefix "disk-caches", \ > + VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-allocations", \ > + VIRTIO_BALLOON_S_NAMES_prefix "hugetlb-failures" \ > +} > + > +#define VIRTIO_BALLOON_S_NAMES VIRTIO_BALLOON_S_NAMES_WITH_PREFIX("") > > /* > * Memory statistics structure. > -- > 1.8.3.1 > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org > For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org >
signature.asc
Description: PGP signature