Jonathan Helman
2018-Mar-20 04:26 UTC
[PATCH v2] virtio_balloon: export hugetlb page allocation counts
> On Mar 19, 2018, at 7:31 PM, Jason Wang <jasowang at redhat.com> wrote: > > > > On 2018?03?20? 06:14, Jonathan Helman wrote: >> Export the number of successful and failed hugetlb page >> allocations via the virtio balloon driver. These 2 counts >> come directly from the vm_events HTLB_BUDDY_PGALLOC and >> HTLB_BUDDY_PGALLOC_FAIL. >> >> Signed-off-by: Jonathan Helman <jonathan.helman at oracle.com> > > Reviewed-by: Jason Wang <jasowang at redhat.com>Thanks.> >> --- >> drivers/virtio/virtio_balloon.c | 6 ++++++ >> include/uapi/linux/virtio_balloon.h | 4 +++- >> 2 files changed, 9 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c >> index dfe5684..6b237e3 100644 >> --- a/drivers/virtio/virtio_balloon.c >> +++ b/drivers/virtio/virtio_balloon.c >> @@ -272,6 +272,12 @@ static unsigned int update_balloon_stats(struct virtio_balloon *vb) >> pages_to_bytes(events[PSWPOUT])); >> update_stat(vb, idx++, VIRTIO_BALLOON_S_MAJFLT, events[PGMAJFAULT]); >> update_stat(vb, idx++, VIRTIO_BALLOON_S_MINFLT, events[PGFAULT]); >> +#ifdef CONFIG_HUGETLB_PAGE >> + update_stat(vb, idx++, VIRTIO_BALLOON_S_HTLB_PGALLOC, >> + events[HTLB_BUDDY_PGALLOC]); >> + update_stat(vb, idx++, VIRTIO_BALLOON_S_HTLB_PGFAIL, >> + events[HTLB_BUDDY_PGALLOC_FAIL]); >> +#endif >> #endif >> update_stat(vb, idx++, VIRTIO_BALLOON_S_MEMFREE, >> pages_to_bytes(i.freeram)); >> diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h >> index 4e8b830..40297a3 100644 >> --- a/include/uapi/linux/virtio_balloon.h >> +++ b/include/uapi/linux/virtio_balloon.h >> @@ -53,7 +53,9 @@ 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 >> /* >> * Memory statistics structure. > > Not for this patch, but it looks to me that exporting such nr through uapi is fragile.Sorry, can you explain what you mean here? Jon> > Thanks
Jason Wang
2018-Mar-22 01:52 UTC
[virtio-dev] Re: [PATCH v2] virtio_balloon: export hugetlb page allocation counts
On 2018?03?20? 12:26, Jonathan Helman wrote:>> On Mar 19, 2018, at 7:31 PM, Jason Wang <jasowang at redhat.com> wrote: >> >> >> >> On 2018?03?20? 06:14, Jonathan Helman wrote: >>> Export the number of successful and failed hugetlb page >>> allocations via the virtio balloon driver. These 2 counts >>> come directly from the vm_events HTLB_BUDDY_PGALLOC and >>> HTLB_BUDDY_PGALLOC_FAIL. >>> >>> Signed-off-by: Jonathan Helman <jonathan.helman at oracle.com> >> Reviewed-by: Jason Wang <jasowang at redhat.com> > Thanks. > >>> --- >>> drivers/virtio/virtio_balloon.c | 6 ++++++ >>> include/uapi/linux/virtio_balloon.h | 4 +++- >>> 2 files changed, 9 insertions(+), 1 deletion(-) >>> >>> diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c >>> index dfe5684..6b237e3 100644 >>> --- a/drivers/virtio/virtio_balloon.c >>> +++ b/drivers/virtio/virtio_balloon.c >>> @@ -272,6 +272,12 @@ static unsigned int update_balloon_stats(struct virtio_balloon *vb) >>> pages_to_bytes(events[PSWPOUT])); >>> update_stat(vb, idx++, VIRTIO_BALLOON_S_MAJFLT, events[PGMAJFAULT]); >>> update_stat(vb, idx++, VIRTIO_BALLOON_S_MINFLT, events[PGFAULT]); >>> +#ifdef CONFIG_HUGETLB_PAGE >>> + update_stat(vb, idx++, VIRTIO_BALLOON_S_HTLB_PGALLOC, >>> + events[HTLB_BUDDY_PGALLOC]); >>> + update_stat(vb, idx++, VIRTIO_BALLOON_S_HTLB_PGFAIL, >>> + events[HTLB_BUDDY_PGALLOC_FAIL]); >>> +#endif >>> #endif >>> update_stat(vb, idx++, VIRTIO_BALLOON_S_MEMFREE, >>> pages_to_bytes(i.freeram)); >>> diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h >>> index 4e8b830..40297a3 100644 >>> --- a/include/uapi/linux/virtio_balloon.h >>> +++ b/include/uapi/linux/virtio_balloon.h >>> @@ -53,7 +53,9 @@ 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 >>> /* >>> * Memory statistics structure. >> Not for this patch, but it looks to me that exporting such nr through uapi is fragile. > Sorry, can you explain what you mean here? > > JonSpec said "Within an output buffer submitted to the statsq, the device MUST ignore entries with tag values that it does not recognize". So exporting VIRTIO_BALLOON_S_NR seems useless and device implementation can not depend on such number in uapi. Thanks> >> Thanks > > --------------------------------------------------------------------- > To unsubscribe, e-mail: virtio-dev-unsubscribe at lists.oasis-open.org > For additional commands, e-mail: virtio-dev-help at lists.oasis-open.org >
Michael S. Tsirkin
2018-Mar-22 03:10 UTC
[virtio-dev] Re: [PATCH v2] virtio_balloon: export hugetlb page allocation counts
On Thu, Mar 22, 2018 at 09:52:18AM +0800, Jason Wang wrote:> > > On 2018?03?20? 12:26, Jonathan Helman wrote: > > > On Mar 19, 2018, at 7:31 PM, Jason Wang <jasowang at redhat.com> wrote: > > > > > > > > > > > > On 2018?03?20? 06:14, Jonathan Helman wrote: > > > > Export the number of successful and failed hugetlb page > > > > allocations via the virtio balloon driver. These 2 counts > > > > come directly from the vm_events HTLB_BUDDY_PGALLOC and > > > > HTLB_BUDDY_PGALLOC_FAIL. > > > > > > > > Signed-off-by: Jonathan Helman <jonathan.helman at oracle.com> > > > Reviewed-by: Jason Wang <jasowang at redhat.com> > > Thanks. > > > > > > --- > > > > drivers/virtio/virtio_balloon.c | 6 ++++++ > > > > include/uapi/linux/virtio_balloon.h | 4 +++- > > > > 2 files changed, 9 insertions(+), 1 deletion(-) > > > > > > > > diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c > > > > index dfe5684..6b237e3 100644 > > > > --- a/drivers/virtio/virtio_balloon.c > > > > +++ b/drivers/virtio/virtio_balloon.c > > > > @@ -272,6 +272,12 @@ static unsigned int update_balloon_stats(struct virtio_balloon *vb) > > > > pages_to_bytes(events[PSWPOUT])); > > > > update_stat(vb, idx++, VIRTIO_BALLOON_S_MAJFLT, events[PGMAJFAULT]); > > > > update_stat(vb, idx++, VIRTIO_BALLOON_S_MINFLT, events[PGFAULT]); > > > > +#ifdef CONFIG_HUGETLB_PAGE > > > > + update_stat(vb, idx++, VIRTIO_BALLOON_S_HTLB_PGALLOC, > > > > + events[HTLB_BUDDY_PGALLOC]); > > > > + update_stat(vb, idx++, VIRTIO_BALLOON_S_HTLB_PGFAIL, > > > > + events[HTLB_BUDDY_PGALLOC_FAIL]); > > > > +#endif > > > > #endif > > > > update_stat(vb, idx++, VIRTIO_BALLOON_S_MEMFREE, > > > > pages_to_bytes(i.freeram)); > > > > diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h > > > > index 4e8b830..40297a3 100644 > > > > --- a/include/uapi/linux/virtio_balloon.h > > > > +++ b/include/uapi/linux/virtio_balloon.h > > > > @@ -53,7 +53,9 @@ 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 > > > > /* > > > > * Memory statistics structure. > > > Not for this patch, but it looks to me that exporting such nr through uapi is fragile. > > Sorry, can you explain what you mean here? > > > > Jon > > Spec said "Within an output buffer submitted to the statsq, the device MUST > ignore entries with tag values that it does not recognize". So exporting > VIRTIO_BALLOON_S_NR seems useless and device implementation can not depend > on such number in uapi. > > ThanksSuggestions? I don't like to break build for people ...> > > > > Thanks > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: virtio-dev-unsubscribe at lists.oasis-open.org > > For additional commands, e-mail: virtio-dev-help at lists.oasis-open.org > >
Apparently Analagous Threads
- [PATCH v2] virtio_balloon: export hugetlb page allocation counts
- [PATCH v2] virtio_balloon: export hugetlb page allocation counts
- [virtio-dev] Re: [PATCH v2] virtio_balloon: export hugetlb page allocation counts
- [virtio-dev] Re: [PATCH v2] virtio_balloon: export hugetlb page allocation counts
- [virtio-dev] Re: [PATCH v2] virtio_balloon: export hugetlb page allocation counts