Tomáš Golembiovský
2017-Nov-12 12:05 UTC
[PATCH v3] virtio_balloon: include disk/file caches memory statistics
Add a new field VIRTIO_BALLOON_S_CACHES to virtio_balloon memory
statistics protocol. The value represents all disk/file caches.
In this case it corresponds to the sum of values
Buffers+Cached+SwapCached from /proc/meminfo.
Signed-off-by: Tom?? Golembiovsk? <tgolembi at redhat.com>
---
drivers/virtio/virtio_balloon.c | 4 ++++
include/uapi/linux/virtio_balloon.h | 3 ++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index f0b3a0b9d42f..d2bd13bbaf9f 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -244,11 +244,13 @@ static unsigned int update_balloon_stats(struct
virtio_balloon *vb)
struct sysinfo i;
unsigned int idx = 0;
long available;
+ unsigned long caches;
all_vm_events(events);
si_meminfo(&i);
available = si_mem_available();
+ caches = global_node_page_state(NR_FILE_PAGES);
#ifdef CONFIG_VM_EVENT_COUNTERS
update_stat(vb, idx++, VIRTIO_BALLOON_S_SWAP_IN,
@@ -264,6 +266,8 @@ static unsigned int update_balloon_stats(struct
virtio_balloon *vb)
pages_to_bytes(i.totalram));
update_stat(vb, idx++, VIRTIO_BALLOON_S_AVAIL,
pages_to_bytes(available));
+ update_stat(vb, idx++, VIRTIO_BALLOON_S_CACHES,
+ pages_to_bytes(caches));
return idx;
}
diff --git a/include/uapi/linux/virtio_balloon.h
b/include/uapi/linux/virtio_balloon.h
index 343d7ddefe04..4e8b8304b793 100644
--- a/include/uapi/linux/virtio_balloon.h
+++ b/include/uapi/linux/virtio_balloon.h
@@ -52,7 +52,8 @@ struct virtio_balloon_config {
#define VIRTIO_BALLOON_S_MEMFREE 4 /* Total amount of free memory */
#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_NR 7
+#define VIRTIO_BALLOON_S_CACHES 7 /* Disk caches */
+#define VIRTIO_BALLOON_S_NR 8
/*
* Memory statistics structure.
--
2.15.0
Tomáš Golembiovský
2017-Nov-20 14:06 UTC
[PATCH v3] virtio_balloon: include disk/file caches memory statistics
On Sun, 12 Nov 2017 13:05:38 +0100 Tom?? Golembiovsk? <tgolembi at redhat.com> wrote:> Add a new field VIRTIO_BALLOON_S_CACHES to virtio_balloon memory > statistics protocol. The value represents all disk/file caches. > > In this case it corresponds to the sum of values > Buffers+Cached+SwapCached from /proc/meminfo. > > Signed-off-by: Tom?? Golembiovsk? <tgolembi at redhat.com> > --- > drivers/virtio/virtio_balloon.c | 4 ++++ > include/uapi/linux/virtio_balloon.h | 3 ++- > 2 files changed, 6 insertions(+), 1 deletion(-) >ping -- Tom?? Golembiovsk? <tgolembi at redhat.com>
Michael S. Tsirkin
2017-Nov-29 01:24 UTC
[PATCH v3] virtio_balloon: include disk/file caches memory statistics
On Sun, Nov 12, 2017 at 01:05:38PM +0100, Tom?? Golembiovsk? wrote:> Add a new field VIRTIO_BALLOON_S_CACHES to virtio_balloon memory > statistics protocol. The value represents all disk/file caches. > > In this case it corresponds to the sum of values > Buffers+Cached+SwapCached from /proc/meminfo. > > Signed-off-by: Tom?? Golembiovsk? <tgolembi at redhat.com>I parked this on vhost branch, part of linux next.> --- > drivers/virtio/virtio_balloon.c | 4 ++++ > include/uapi/linux/virtio_balloon.h | 3 ++- > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c > index f0b3a0b9d42f..d2bd13bbaf9f 100644 > --- a/drivers/virtio/virtio_balloon.c > +++ b/drivers/virtio/virtio_balloon.c > @@ -244,11 +244,13 @@ static unsigned int update_balloon_stats(struct virtio_balloon *vb) > struct sysinfo i; > unsigned int idx = 0; > long available; > + unsigned long caches; > > all_vm_events(events); > si_meminfo(&i); > > available = si_mem_available(); > + caches = global_node_page_state(NR_FILE_PAGES); > > #ifdef CONFIG_VM_EVENT_COUNTERS > update_stat(vb, idx++, VIRTIO_BALLOON_S_SWAP_IN, > @@ -264,6 +266,8 @@ static unsigned int update_balloon_stats(struct virtio_balloon *vb) > pages_to_bytes(i.totalram)); > update_stat(vb, idx++, VIRTIO_BALLOON_S_AVAIL, > pages_to_bytes(available)); > + update_stat(vb, idx++, VIRTIO_BALLOON_S_CACHES, > + pages_to_bytes(caches)); > > return idx; > } > diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h > index 343d7ddefe04..4e8b8304b793 100644 > --- a/include/uapi/linux/virtio_balloon.h > +++ b/include/uapi/linux/virtio_balloon.h > @@ -52,7 +52,8 @@ struct virtio_balloon_config { > #define VIRTIO_BALLOON_S_MEMFREE 4 /* Total amount of free memory */ > #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_NR 7 > +#define VIRTIO_BALLOON_S_CACHES 7 /* Disk caches */ > +#define VIRTIO_BALLOON_S_NR 8 > > /* > * Memory statistics structure. > -- > 2.15.0
Maybe Matching Threads
- [PATCH v3] virtio_balloon: include disk/file caches memory statistics
- [PATCH v2 1/1] virtio_balloon: include buffers and cached memory statistics
- [PATCH v2 1/1] virtio_balloon: include buffers and cached memory statistics
- [PATCH v2 1/1] virtio_balloon: include buffers and cached memory statistics
- [PATCH v2 1/1] virtio_balloon: include buffers and cached memory statistics