Web lists-archives.com

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






On 04/13/2018 03:07 PM, Michael S. Tsirkin wrote:
On Fri, Apr 13, 2018 at 11:53:31AM -0700, Jonathan Helman wrote:


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.

So

... add more stats as recently by commit 6c64fe7f2 ("virtio_balloon: export hugetlb page allocation counts")



Sure. Thanks.

Jon



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.