From: "Michael S. Tsirkin" <mst@redhat.com>
To: "Denis V. Lunev" <den@openvz.org>
Cc: virtualization@lists.linux-foundation.org,
linux-kernel@vger.kernel.org, Igor Redko <redkoi@virtuozzo.com>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [PATCH 2/2] virtio_balloon: export 'available' memory to balloon statistics
Date: Tue, 23 Feb 2016 17:10:30 +0200 [thread overview]
Message-ID: <20160223170828-mutt-send-email-mst@redhat.com> (raw)
In-Reply-To: <1455637852-7323-3-git-send-email-den@openvz.org>
On Tue, Feb 16, 2016 at 06:50:52PM +0300, Denis V. Lunev wrote:
> From: Igor Redko <redkoi@virtuozzo.com>
>
> Add a new field, VIRTIO_BALLOON_S_AVAIL, to virtio_balloon memory
> statistics protocol, corresponding to 'Available' in /proc/meminfo.
>
> It indicates to the hypervisor how big the balloon can be inflated
> without pushing the guest system to swap.
>
> Signed-off-by: Igor Redko <redkoi@virtuozzo.com>
> Reviewed-by: Roman Kagan <rkagan@virtuozzo.com>
> Signed-off-by: Denis V. Lunev <den@openvz.org>
> CC: Michael S. Tsirkin <mst@redhat.com>
> CC: Andrew Morton <akpm@linux-foundation.org>
Oops - I missed the fact that this affects host/guest ABI.
Can you please submit ABI update proposal to virtio tc?
Spec patch would be even better.
This is important to ensure there are no conflicts
with other features being developed in parallel.
> ---
> drivers/virtio/virtio_balloon.c | 6 ++++++
> include/uapi/linux/virtio_balloon.h | 3 ++-
> 2 files changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
> index 0c3691f..f2b77de 100644
> --- a/drivers/virtio/virtio_balloon.c
> +++ b/drivers/virtio/virtio_balloon.c
> @@ -30,6 +30,7 @@
> #include <linux/balloon_compaction.h>
> #include <linux/oom.h>
> #include <linux/wait.h>
> +#include <linux/mm.h>
>
> /*
> * Balloon device works in 4K page units. So each page is pointed to by
> @@ -229,10 +230,13 @@ static void update_balloon_stats(struct virtio_balloon *vb)
> unsigned long events[NR_VM_EVENT_ITEMS];
> struct sysinfo i;
> int idx = 0;
> + long available;
>
> all_vm_events(events);
> si_meminfo(&i);
>
> + available = si_mem_available();
> +
> update_stat(vb, idx++, VIRTIO_BALLOON_S_SWAP_IN,
> pages_to_bytes(events[PSWPIN]));
> update_stat(vb, idx++, VIRTIO_BALLOON_S_SWAP_OUT,
> @@ -243,6 +247,8 @@ static void update_balloon_stats(struct virtio_balloon *vb)
> pages_to_bytes(i.freeram));
> update_stat(vb, idx++, VIRTIO_BALLOON_S_MEMTOT,
> pages_to_bytes(i.totalram));
> + update_stat(vb, idx++, VIRTIO_BALLOON_S_AVAIL,
> + pages_to_bytes(available));
> }
>
> /*
> diff --git a/include/uapi/linux/virtio_balloon.h b/include/uapi/linux/virtio_balloon.h
> index d7f1cbc..343d7dd 100644
> --- a/include/uapi/linux/virtio_balloon.h
> +++ b/include/uapi/linux/virtio_balloon.h
> @@ -51,7 +51,8 @@ struct virtio_balloon_config {
> #define VIRTIO_BALLOON_S_MINFLT 3 /* Number of minor faults */
> #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_NR 6
> +#define VIRTIO_BALLOON_S_AVAIL 6 /* Available memory as in /proc */
> +#define VIRTIO_BALLOON_S_NR 7
>
> /*
> * Memory statistics structure.
> --
> 2.5.0
next prev parent reply other threads:[~2016-02-23 15:10 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-16 15:50 [PATCH 0/2] export 'available' memory to virtio " Denis V. Lunev
2016-02-16 15:50 ` [PATCH 1/2] calculate 'available' memory in the separate function Denis V. Lunev
2016-02-16 15:50 ` [PATCH 2/2] virtio_balloon: export 'available' memory to balloon statistics Denis V. Lunev
2016-02-23 15:10 ` Michael S. Tsirkin [this message]
2016-02-23 15:26 ` Denis V. Lunev
2016-02-23 15:53 ` Michael S. Tsirkin
2016-02-23 16:12 ` Denis V. Lunev
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160223170828-mutt-send-email-mst@redhat.com \
--to=mst@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=den@openvz.org \
--cc=linux-kernel@vger.kernel.org \
--cc=redkoi@virtuozzo.com \
--cc=virtualization@lists.linux-foundation.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome