Re: [PATCH] virtio_balloon: add array of stat names

From: Jonathan Helman
Date: Fri Apr 13 2018 - 14:53:47 EST




On 04/13/2018 06:44 AM, Michael S. Tsirkin wrote:
Jason Wang points out that it's vary hard for users to build an array of

s/vary/very

stat names. The naive thing is to use VIRTIO_BALLOON_S_NR but that
breaks if we add more stats.

Let's add an array of reasonably readable names.

Thanks for doing this, this is goodness. Clients of this interface will now only require a modification to their internal copy of the header file (if they have one), rather than updating their string array as well.


Fixes: 6c64fe7f2 ("virtio_balloon: export hugetlb page allocation counts")

I think this is a tad bit confusing since the only way you'd know why this patch "fixes" 6c64fe7f2 is by reading the LKML archives and finding Jason's comment.

Cc: Jason Wang <jasowang@xxxxxxxxxx>
Cc: Jonathan Helman <jonathan.helman@xxxxxxxxxx>, > Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>

Reviewed-by: Jonathan Helman <jonathan.helman@xxxxxxxxxx>

---
include/uapi/linux/virtio_balloon.h | 15 +++++++++++++++
1 file changed, 15 insertions(+)

diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h
index 9e02137..1477c17 100644
--- a/include/uapi/linux/virtio_balloon.h
+++ b/include/uapi/linux/virtio_balloon.h
@@ -64,6 +64,21 @@ struct virtio_balloon_config {
#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.
* Driver fills an array of these structures and passes to device.