Jason Wang points out that it's vary hard for users to build an array of 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. Fixes: 6c64fe7f2 ("virtio_balloon: export hugetlb page allocation counts") Cc: Jason Wang <jasowang at redhat.com> Cc: Jonathan Helman <jonathan.helman at oracle.com>, Signed-off-by: Michael S. Tsirkin <mst at redhat.com> --- 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. -- MST
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 ofs/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 at redhat.com> > Cc: Jonathan Helman <jonathan.helman at oracle.com>, > Signed-off-by: Michael S. Tsirkin <mst at redhat.com>Reviewed-by: Jonathan Helman <jonathan.helman at oracle.com>> --- > 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. >
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")> > Cc: Jason Wang <jasowang at redhat.com> > > Cc: Jonathan Helman <jonathan.helman at oracle.com>, > Signed-off-by: Michael S. Tsirkin <mst at redhat.com> > > Reviewed-by: Jonathan Helman <jonathan.helman at oracle.com> > > > --- > > 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. > >
Possibly Parallel Threads
- [PATCH] virtio_balloon: add array of stat names
- [PATCH] virtio_balloon: add array of stat names
- [PATCH] virtio_balloon: add array of stat names
- [virtio-dev] Re: [PATCH v2] virtio_balloon: export hugetlb page allocation counts
- [virtio-dev] Re: [PATCH v2] virtio_balloon: export hugetlb page allocation counts