1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#[allow(missing_docs)]
#[derive(Debug, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum VirtualMemoryStatisticName
{
NumberOFreePages,
NumberOfBatchAllocatedPages,
NumberOfInactiveAnonymousPages,
NumberOfActiveAnonymousPages,
NumberOfInactiveFilePages,
NumberOfActiveFilePages,
NumberOfUnevictablePages,
NumberOfLockedPages,
NumberOfAnonymousPages,
NumberOfMappedPages,
NumberOfFilePages,
NumberOfDirtyPages,
NumberOfWritebackPages,
NumberOfReclaimableSlabPages,
NumberOfUnreclaimableSlabPages,
NumberOfPageTablePages,
NumberOfKernelStackPages,
NumberOfUnstablePages,
NumberOfBouncePages,
NumberOfVirtualMemoryWritePages,
NumberOfVirtualMemoryImmediateReclaimPages,
NumberOfWritebackTemporaryPages,
NumberOfIsolatedAnonymousPages,
NumberOfIsolatedFilePages,
NumberOfShmemPages,
NumberOfDirtiedPages,
NumberOfWrittenPages,
NumberOfAnonymousTransparentHugePages,
NumberOfFreeCmaPages,
NumaHit,
NumaMiss,
NumaForeign,
NumaInterleaveHit,
NumaLocalNode,
NumaOtherNode,
Unknown(String),
}
impl VirtualMemoryStatisticName
{
#[inline]
pub(crate) fn parse(name: &str) -> Self
{
use self::VirtualMemoryStatisticName::*;
match name
{
"nr_free_pages" => NumberOFreePages,
"nr_alloc_batch" => NumberOfBatchAllocatedPages,
"nr_inactive_anon" => NumberOfInactiveAnonymousPages,
"nr_active_anon" => NumberOfActiveAnonymousPages,
"nr_inactive_file" => NumberOfInactiveFilePages,
"nr_active_file" => NumberOfActiveFilePages,
"nr_unevictable" => NumberOfUnevictablePages,
"nr_mlock" => NumberOfLockedPages,
"nr_anon_pages" => NumberOfAnonymousPages,
"nr_mapped" => NumberOfMappedPages,
"nr_file_pages" => NumberOfFilePages,
"nr_dirty" => NumberOfDirtyPages,
"nr_writeback" => NumberOfWritebackPages,
"nr_slab_reclaimable" => NumberOfReclaimableSlabPages,
"nr_slab_unreclaimable" => NumberOfUnreclaimableSlabPages,
"nr_page_table_pages" => NumberOfPageTablePages,
"nr_kernel_stack" => NumberOfKernelStackPages,
"nr_unstable" => NumberOfUnstablePages,
"nr_bounce" => NumberOfBouncePages,
"nr_vmscan_write" => NumberOfVirtualMemoryWritePages,
"nr_vmscan_immediate_reclaim" => NumberOfVirtualMemoryImmediateReclaimPages,
"nr_writeback_temp" => NumberOfWritebackTemporaryPages,
"nr_isolated_anon" => NumberOfIsolatedAnonymousPages,
"nr_isolated_file" => NumberOfIsolatedFilePages,
"nr_shmem" => NumberOfShmemPages,
"nr_dirtied" => NumberOfDirtiedPages,
"nr_written" => NumberOfWrittenPages,
"nr_anon_transparent_hugepages" => NumberOfAnonymousTransparentHugePages,
"nr_free_cma" => NumberOfFreeCmaPages,
"numa_hit" => NumaHit,
"numa_miss" => NumaMiss,
"numa_foreign" => NumaForeign,
"interleave_hit" => NumaInterleaveHit,
"local_node" => NumaLocalNode,
"other_node" => NumaOtherNode,
other @ _ => Unknown(other.to_owned()),
}
}
}