From 664cc3ca49cb58d5bf7d936686fd211d6dd728bf Mon Sep 17 00:00:00 2001 From: Charles William Dick Date: Fri, 10 Jan 2020 14:31:52 +0900 Subject: crosvm virtio balloon stats Introduces the ability to request BalloonStats from a BalloonControlCommand. BUG=b:147334004 TEST=tast run arc.Boot.vm, and the balance available changes based on this. Change-Id: I808c4024f8c644c9cc4e30cc455ceda5f477bff3 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/crosvm/+/2061517 Reviewed-by: Chirantan Ekbote Tested-by: kokoro Commit-Queue: Charles Dueck --- vm_control/src/lib.rs | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) (limited to 'vm_control/src') diff --git a/vm_control/src/lib.rs b/vm_control/src/lib.rs index b2577d9..92af2c6 100644 --- a/vm_control/src/lib.rs +++ b/vm_control/src/lib.rs @@ -99,7 +99,33 @@ pub const USB_CONTROL_MAX_PORTS: usize = 16; #[derive(MsgOnSocket, Debug)] pub enum BalloonControlCommand { /// Set the size of the VM's balloon. - Adjust { num_bytes: u64 }, + Adjust { + num_bytes: u64, + }, + Stats, +} + +// BalloonStats holds stats returned from the stats_queue. +#[derive(Default, MsgOnSocket, Debug)] +pub struct BalloonStats { + pub swap_in: Option, + pub swap_out: Option, + pub major_faults: Option, + pub minor_faults: Option, + pub free_memory: Option, + pub total_memory: Option, + pub available_memory: Option, + pub disk_caches: Option, + pub hugetlb_allocations: Option, + pub hugetlb_failures: Option, +} + +#[derive(MsgOnSocket, Debug)] +pub enum BalloonControlResult { + Stats { + stats: BalloonStats, + balloon_actual: u64, + }, } #[derive(MsgOnSocket, Debug)] @@ -379,8 +405,8 @@ pub enum VmIrqResponse { Err(SysError), } -pub type BalloonControlRequestSocket = MsgSocket; -pub type BalloonControlResponseSocket = MsgSocket<(), BalloonControlCommand>; +pub type BalloonControlRequestSocket = MsgSocket; +pub type BalloonControlResponseSocket = MsgSocket; pub type DiskControlRequestSocket = MsgSocket; pub type DiskControlResponseSocket = MsgSocket; -- cgit 1.4.1