[PATCH v6 2/2] Unify how inflated memory is accounted in virtio balloon driver

From: Alexander Atanasov
Date: Tue Jul 26 2022 - 10:11:08 EST


Always account inflated memory as used for both cases - with and
without deflate on oom. Do not change total ram which can confuse
userspace and users.

Signed-off-by: Alexander Atanasov <alexander.atanasov@xxxxxxxxxxxxx>
---
drivers/virtio/virtio_balloon.c | 13 ++-----------
1 file changed, 2 insertions(+), 11 deletions(-)

diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index 97d3b29cb9f1..fa6ddec45fc4 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -244,9 +244,6 @@ static unsigned fill_balloon(struct virtio_balloon *vb, size_t num)

set_page_pfns(vb, vb->pfns + vb->num_pfns, page);
vb->num_pages += VIRTIO_BALLOON_PAGES_PER_PAGE;
- if (!virtio_has_feature(vb->vdev,
- VIRTIO_BALLOON_F_DEFLATE_ON_OOM))
- adjust_managed_page_count(page, -1);
vb->num_pfns += VIRTIO_BALLOON_PAGES_PER_PAGE;
}

@@ -265,9 +262,6 @@ static void release_pages_balloon(struct virtio_balloon *vb,
struct page *page, *next;

list_for_each_entry_safe(page, next, pages, lru) {
- if (!virtio_has_feature(vb->vdev,
- VIRTIO_BALLOON_F_DEFLATE_ON_OOM))
- adjust_managed_page_count(page, 1);
list_del(&page->lru);
put_page(page); /* balloon reference */
}
@@ -750,12 +744,9 @@ static void report_free_page_func(struct work_struct *work)
static int virtio_balloon_debug_show(struct seq_file *f, void *offset)
{
struct virtio_balloon *vb = f->private;
- s64 num_pages = vb->num_pages << (VIRTIO_BALLOON_PFN_SHIFT - 10);
+ u64 num_pages = vb->num_pages << (VIRTIO_BALLOON_PFN_SHIFT - 10);

- if (!virtio_has_feature(vb->vdev, VIRTIO_BALLOON_F_DEFLATE_ON_OOM))
- num_pages = -num_pages;
-
- seq_printf(f, "inflated: %lld kB\n", num_pages);
+ seq_printf(f, "inflated: %llu kB\n", num_pages);

return 0;
}
--
2.25.1