Re: [RFC 1/5] meminfo: add a per node counter for balloon drivers

From: David Hildenbrand
Date: Thu Mar 13 2025 - 04:23:08 EST


On 13.03.25 00:04, Nico Pache wrote:
On Wed, Mar 12, 2025 at 4:19 PM David Hildenbrand <david@xxxxxxxxxx> wrote:

On 12.03.25 01:06, Nico Pache wrote:
Add NR_BALLOON_PAGES counter to track memory used by balloon drivers and
expose it through /proc/meminfo and other memory reporting interfaces.

In balloon_page_enqueue_one(), we perform a

__count_vm_event(BALLOON_INFLATE)

and in balloon_page_list_dequeue

__count_vm_event(BALLOON_DEFLATE);


Should we maybe simply do the per-node accounting similarly there?

I think the issue is that some balloon drivers use the
balloon_compaction interface while others use their own.

This would require unifying all the drivers under a single api which
may be tricky if they all have different behavior

Why would that be required? Simply implement it in the balloon compaction logic, and in addition separately in the ones that don't implement it.

That's the same as how we handle PageOffline today.

In summary, we have

virtio-balloon: balloon compaction
hv-balloon: no balloon compaction
xen-balloon: no balloon compaction
vmx-balloon: balloon compaction
pseries-cmm: balloon compaction

So you'd handle 3 balloon drivers in one go.

(this series didn't touch pseries-cmm)

--
Cheers,

David / dhildenb