• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2023 The ChromiumOS Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 use std::collections::BTreeMap;
6 
7 use serde::Deserialize;
8 use serde::Serialize;
9 
10 #[derive(Debug, Clone, Serialize)]
11 pub struct ProcRecord {
12     pub pid: u32,
13     pub name: String,
14     pub smaps: BTreeMap<String, u64>,
15 }
16 
17 #[derive(Debug, Clone, Serialize)]
18 pub struct Record {
19     pub timestamp: u64,
20     pub stats: Vec<ProcRecord>,
21     pub balloon_stats: Option<BalloonStats>,
22 }
23 
24 #[derive(Default, Serialize, Deserialize, Debug, Clone)]
25 pub struct BalloonStatsInner {
26     pub swap_in: Option<u64>,
27     pub swap_out: Option<u64>,
28     pub major_faults: Option<u64>,
29     pub minor_faults: Option<u64>,
30     pub free_memory: Option<u64>,
31     pub total_memory: Option<u64>,
32     pub available_memory: Option<u64>,
33     pub disk_caches: Option<u64>,
34     pub hugetlb_allocations: Option<u64>,
35     pub hugetlb_failures: Option<u64>,
36     pub shared_memory: Option<u64>,
37     pub unevictable_memory: Option<u64>,
38 }
39 
40 #[derive(Default, Serialize, Deserialize, Debug, Clone)]
41 pub struct BalloonStats {
42     pub stats: BalloonStatsInner,
43     pub balloon_actual: u64,
44 }
45