On Thu, Mar 13, 2025 at 2:22 AM David Hildenbrand <david@xxxxxxxxxx> wrote:
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.
Ah ok that makes sense!
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
I'm having a hard time verifying this... it looks like only
vmx-balloon uses the balloon_compaction balloon_page_list_enqueue
function that calls balloon_page_enqueue_one.
Ah I didn't realize that was a balloon driver. Ill add that one to the todo.
So you'd handle 3 balloon drivers in one go.
(this series didn't touch pseries-cmm)