Skip to content

Commit 5c13bcc

Browse files
committed
fixed missing fields and typo
1 parent 217c3d9 commit 5c13bcc

File tree

1 file changed

+64
-38
lines changed

1 file changed

+64
-38
lines changed

src/uu/pmap/src/smaps_format_parser.rs

Lines changed: 64 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,14 @@ pub struct SmapEntry {
1515
pub mmu_page_size_in_kb: u64,
1616
pub rss_in_kb: u64,
1717
pub pss_in_kb: u64,
18+
pub pss_dirty_in_kb: u64,
1819
pub shared_clean_in_kb: u64,
1920
pub shared_dirty_in_kb: u64,
2021
pub private_clean_in_kb: u64,
2122
pub private_dirty_in_kb: u64,
2223
pub referenced_in_kb: u64,
2324
pub anonymous_in_kb: u64,
25+
pub ksm_in_kb: u64,
2426
pub lazy_free_in_kb: u64,
2527
pub anon_huge_pages_in_kb: u64,
2628
pub shmem_pmd_mapped_in_kb: u64,
@@ -44,13 +46,13 @@ pub struct SmapEntry {
4446
pub fn parse_smap_entries(contents: &str) -> Result<Vec<SmapEntry>, Error> {
4547
let mut smap_entries = Vec::new();
4648
let mut smap_entry = SmapEntry::default();
47-
let mut is_entry_moified = false;
49+
let mut is_entry_modified = false;
4850

4951
for line in contents.lines() {
5052
let map_line = parse_map_line(line);
5153
if let Ok(map_line) = map_line {
5254
smap_entry.map_line = map_line;
53-
is_entry_moified = true;
55+
is_entry_modified = true;
5456
} else {
5557
let (key, val) = line
5658
.split_once(':')
@@ -62,7 +64,7 @@ pub fn parse_smap_entries(contents: &str) -> Result<Vec<SmapEntry>, Error> {
6264
smap_entry.vmflags = val.into();
6365
smap_entries.push(smap_entry.clone());
6466
smap_entry = SmapEntry::default();
65-
is_entry_moified = false;
67+
is_entry_modified = false;
6668
}
6769
"THPeligible" => smap_entry.thp_eligible = get_smap_item_value(val)?,
6870
_ => {
@@ -76,12 +78,14 @@ pub fn parse_smap_entries(contents: &str) -> Result<Vec<SmapEntry>, Error> {
7678
"MMUPageSize" => smap_entry.mmu_page_size_in_kb = val,
7779
"Rss" => smap_entry.rss_in_kb = val,
7880
"Pss" => smap_entry.pss_in_kb = val,
81+
"Pss_Dirty" => smap_entry.pss_dirty_in_kb = val,
7982
"Shared_Clean" => smap_entry.shared_clean_in_kb = val,
8083
"Shared_Dirty" => smap_entry.shared_dirty_in_kb = val,
8184
"Private_Clean" => smap_entry.private_clean_in_kb = val,
8285
"Private_Dirty" => smap_entry.private_dirty_in_kb = val,
8386
"Referenced" => smap_entry.referenced_in_kb = val,
8487
"Anonymous" => smap_entry.anonymous_in_kb = val,
88+
"KSM" => smap_entry.ksm_in_kb = val,
8589
"LazyFree" => smap_entry.lazy_free_in_kb = val,
8690
"AnonHugePages" => smap_entry.anon_huge_pages_in_kb = val,
8791
"ShmemPmdMapped" => smap_entry.shmem_pmd_mapped_in_kb = val,
@@ -98,7 +102,7 @@ pub fn parse_smap_entries(contents: &str) -> Result<Vec<SmapEntry>, Error> {
98102
}
99103
}
100104

101-
if is_entry_moified {
105+
if is_entry_modified {
102106
smap_entries.push(smap_entry);
103107
}
104108

@@ -127,12 +131,14 @@ mod test {
127131
mmu_page_size_in_kb: u64,
128132
rss_in_kb: u64,
129133
pss_in_kb: u64,
134+
pss_dirty_in_kb: u64,
130135
shared_clean_in_kb: u64,
131136
shared_dirty_in_kb: u64,
132137
private_clean_in_kb: u64,
133138
private_dirty_in_kb: u64,
134139
referenced_in_kb: u64,
135140
anonymous_in_kb: u64,
141+
ksm_in_kb: u64,
136142
lazy_free_in_kb: u64,
137143
anon_huge_pages_in_kb: u64,
138144
shmem_pmd_mapped_in_kb: u64,
@@ -160,12 +166,14 @@ mod test {
160166
mmu_page_size_in_kb,
161167
rss_in_kb,
162168
pss_in_kb,
169+
pss_dirty_in_kb,
163170
shared_clean_in_kb,
164171
shared_dirty_in_kb,
165172
private_clean_in_kb,
166173
private_dirty_in_kb,
167174
referenced_in_kb,
168175
anonymous_in_kb,
176+
ksm_in_kb,
169177
lazy_free_in_kb,
170178
anon_huge_pages_in_kb,
171179
shmem_pmd_mapped_in_kb,
@@ -186,37 +194,39 @@ mod test {
186194
(
187195
vec![create_smap_entry(
188196
"0000560880413000", Perms::from("r--p"), "0000000000000000", "008:00008", 10813151, "konsole",
189-
180, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
190-
20, "rd mr mw me dw sd")],
197+
180, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
198+
22, "rd mr mw me dw sd")],
191199
concat!(
192200
"560880413000-560880440000 r--p 00000000 08:08 10813151 /usr/bin/konsole\n",
193201
"Size: 180 kB\n",
194202
"KernelPageSize: 1 kB\n",
195203
"MMUPageSize: 2 kB\n",
196204
"Rss: 3 kB\n",
197205
"Pss: 4 kB\n",
198-
"Shared_Clean: 5 kB\n",
199-
"Shared_Dirty: 6 kB\n",
200-
"Private_Clean: 7 kB\n",
201-
"Private_Dirty: 8 kB\n",
202-
"Referenced: 9 kB\n",
203-
"Anonymous: 10 kB\n",
204-
"LazyFree: 11 kB\n",
205-
"AnonHugePages: 12 kB\n",
206-
"ShmemPmdMapped: 13 kB\n",
207-
"FilePmdMapped: 14 kB\n",
208-
"Shared_Hugetlb: 15 kB\n",
209-
"Private_Hugetlb: 16 kB\n",
210-
"Swap: 17 kB\n",
211-
"SwapPss: 18 kB\n",
212-
"Locked: 19 kB\n",
213-
"THPeligible: 20\n",
206+
"Pss_Dirty: 5 kB\n",
207+
"Shared_Clean: 6 kB\n",
208+
"Shared_Dirty: 7 kB\n",
209+
"Private_Clean: 8 kB\n",
210+
"Private_Dirty: 9 kB\n",
211+
"Referenced: 10 kB\n",
212+
"Anonymous: 11 kB\n",
213+
"KSM: 12 kB\n",
214+
"LazyFree: 13 kB\n",
215+
"AnonHugePages: 14 kB\n",
216+
"ShmemPmdMapped: 15 kB\n",
217+
"FilePmdMapped: 16 kB\n",
218+
"Shared_Hugetlb: 17 kB\n",
219+
"Private_Hugetlb: 18 kB\n",
220+
"Swap: 19 kB\n",
221+
"SwapPss: 20 kB\n",
222+
"Locked: 21 kB\n",
223+
"THPeligible: 22\n",
214224
"VmFlags: rd mr mw me dw sd \n")
215225
),
216226
(
217227
vec![create_smap_entry(
218228
"000071af50000000", Perms::from("rw-p"), "0000000000000000", "000:00000", 0, " [ anon ]",
219-
132, 4, 4, 128, 9, 128, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
229+
132, 4, 4, 128, 9, 9, 128, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
220230
0, "rd mr mw me sd")],
221231
concat!(
222232
"71af50000000-71af50021000 rw-p 00000000 00:00 0 \n",
@@ -225,16 +235,18 @@ mod test {
225235
"MMUPageSize: 4 kB\n",
226236
"Rss: 128 kB\n",
227237
"Pss: 9 kB\n",
238+
"Pss_Dirty: 9 kB\n",
228239
"Shared_Clean: 128 kB\n",
229240
"Shared_Dirty: 0 kB\n",
230241
"Private_Clean: 0 kB\n",
231242
"Private_Dirty: 0 kB\n",
232243
"Referenced: 128 kB\n",
233244
"Anonymous: 0 kB\n",
245+
"KSM: 0 kB\n",
234246
"LazyFree: 0 kB\n",
235247
"AnonHugePages: 0 kB\n",
236248
"ShmemPmdMapped: 0 kB\n",
237-
"FilePmdMapped: 0 kB\n",
249+
"FilePmdMapped: 0 kB\n",
238250
"Shared_Hugetlb: 0 kB\n",
239251
"Private_Hugetlb: 0 kB\n",
240252
"Swap: 0 kB\n",
@@ -246,7 +258,7 @@ mod test {
246258
(
247259
vec![create_smap_entry(
248260
"00007ffc3f8df000", Perms::from("rw-p"), "0000000000000000", "000:00000", 0, " [ stack ]",
249-
132, 4, 4, 108, 108, 0, 0, 0, 108, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0,
261+
132, 4, 4, 108, 108, 108, 0, 0, 0, 108, 108, 108, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
250262
0, "rd wr mr mw me gd ac")],
251263
concat!(
252264
"7ffc3f8df000-7ffc3f900000 rw-p 00000000 00:00 0 [stack]\n",
@@ -255,16 +267,18 @@ mod test {
255267
"MMUPageSize: 4 kB\n",
256268
"Rss: 108 kB\n",
257269
"Pss: 108 kB\n",
270+
"Pss_Dirty: 108 kB\n",
258271
"Shared_Clean: 0 kB\n",
259272
"Shared_Dirty: 0 kB\n",
260273
"Private_Clean: 0 kB\n",
261274
"Private_Dirty: 108 kB\n",
262275
"Referenced: 108 kB\n",
263276
"Anonymous: 108 kB\n",
277+
"KSM: 0 kB\n",
264278
"LazyFree: 0 kB\n",
265279
"AnonHugePages: 0 kB\n",
266280
"ShmemPmdMapped: 0 kB\n",
267-
"FilePmdMapped: 0 kB\n",
281+
"FilePmdMapped: 0 kB\n",
268282
"Shared_Hugetlb: 0 kB\n",
269283
"Private_Hugetlb: 0 kB\n",
270284
"Swap: 0 kB\n",
@@ -276,7 +290,7 @@ mod test {
276290
(
277291
vec![create_smap_entry(
278292
"000071af8c9e6000", Perms::from("rw-s"), "0000000105830000", "000:00010", 1075, " [ anon ]",
279-
16, 4, 4, 16, 16, 0, 0, 0, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
293+
16, 4, 4, 16, 16, 16, 0, 0, 0, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
280294
0, "rd wr mr mw me ac sd")],
281295
concat!(
282296
"71af8c9e6000-71af8c9ea000 rw-s 105830000 00:10 1075 anon_inode:i915.gem\n",
@@ -285,16 +299,18 @@ mod test {
285299
"MMUPageSize: 4 kB\n",
286300
"Rss: 16 kB\n",
287301
"Pss: 16 kB\n",
302+
"Pss_Dirty: 16 kB\n",
288303
"Shared_Clean: 0 kB\n",
289304
"Shared_Dirty: 0 kB\n",
290305
"Private_Clean: 0 kB\n",
291306
"Private_Dirty: 16 kB\n",
292307
"Referenced: 16 kB\n",
293308
"Anonymous: 16 kB\n",
309+
"KSM: 0 kB\n",
294310
"LazyFree: 0 kB\n",
295311
"AnonHugePages: 0 kB\n",
296312
"ShmemPmdMapped: 0 kB\n",
297-
"FilePmdMapped: 0 kB\n",
313+
"FilePmdMapped: 0 kB\n",
298314
"Shared_Hugetlb: 0 kB\n",
299315
"Private_Hugetlb: 0 kB\n",
300316
"Swap: 0 kB\n",
@@ -306,7 +322,7 @@ mod test {
306322
(
307323
vec![create_smap_entry(
308324
"000071af6cf0c000", Perms::from("rw-s"), "0000000000000000", "000:00001", 256481, "memfd:wayland-shm (deleted)",
309-
3560, 4, 4, 532, 108, 524, 0, 8, 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
325+
3560, 4, 4, 532, 108, 0, 524, 0, 8, 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
310326
0, "rd mr mw me sd")],
311327
concat!(
312328
"71af6cf0c000-71af6d286000 rw-s 00000000 00:01 256481 /memfd:wayland-shm (deleted)\n",
@@ -315,16 +331,18 @@ mod test {
315331
"MMUPageSize: 4 kB\n",
316332
"Rss: 532 kB\n",
317333
"Pss: 108 kB\n",
334+
"Pss_Dirty: 0 kB\n",
318335
"Shared_Clean: 524 kB\n",
319336
"Shared_Dirty: 0 kB\n",
320337
"Private_Clean: 8 kB\n",
321338
"Private_Dirty: 0 kB\n",
322339
"Referenced: 532 kB\n",
323340
"Anonymous: 0 kB\n",
341+
"KSM: 0 kB\n",
324342
"LazyFree: 0 kB\n",
325343
"AnonHugePages: 0 kB\n",
326344
"ShmemPmdMapped: 0 kB\n",
327-
"FilePmdMapped: 0 kB\n",
345+
"FilePmdMapped: 0 kB\n",
328346
"Shared_Hugetlb: 0 kB\n",
329347
"Private_Hugetlb: 0 kB\n",
330348
"Swap: 0 kB\n",
@@ -336,7 +354,7 @@ mod test {
336354
(
337355
vec![create_smap_entry(
338356
"ffffffffff600000", Perms::from("--xp"), "0000000000000000", "000:00000", 0, " [ anon ]",
339-
4, 4, 4, 4, 4, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0,
357+
4, 4, 4, 4, 4, 4, 0, 0, 0, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
340358
0, "rd wr mr mw me ac sd")],
341359
concat!(
342360
"ffffffffff600000-ffffffffff601000 --xp 00000000 00:00 0 [vsyscall]\n",
@@ -345,16 +363,18 @@ mod test {
345363
"MMUPageSize: 4 kB\n",
346364
"Rss: 4 kB\n",
347365
"Pss: 4 kB\n",
366+
"Pss_Dirty: 4 kB\n",
348367
"Shared_Clean: 0 kB\n",
349368
"Shared_Dirty: 0 kB\n",
350369
"Private_Clean: 0 kB\n",
351370
"Private_Dirty: 4 kB\n",
352371
"Referenced: 4 kB\n",
353372
"Anonymous: 4 kB\n",
373+
"KSM: 0 kB\n",
354374
"LazyFree: 0 kB\n",
355375
"AnonHugePages: 0 kB\n",
356376
"ShmemPmdMapped: 0 kB\n",
357-
"FilePmdMapped: 0 kB\n",
377+
"FilePmdMapped: 0 kB\n",
358378
"Shared_Hugetlb: 0 kB\n",
359379
"Private_Hugetlb: 0 kB\n",
360380
"Swap: 0 kB\n",
@@ -366,7 +386,7 @@ mod test {
366386
(
367387
vec![create_smap_entry(
368388
"00005e8187da8000", Perms::from("r--p"), "0000000000000000", "008:00008", 9524160, "hello world",
369-
24, 4, 4, 24, 0, 24, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
389+
24, 4, 4, 24, 0, 0, 24, 0, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
370390
0, "rd ex mr mw me sd")],
371391
concat!(
372392
"5e8187da8000-5e8187dae000 r--p 00000000 08:08 9524160 /usr/bin/hello world\n",
@@ -375,16 +395,18 @@ mod test {
375395
"MMUPageSize: 4 kB\n",
376396
"Rss: 24 kB\n",
377397
"Pss: 0 kB\n",
398+
"Pss_Dirty: 0 kB\n",
378399
"Shared_Clean: 24 kB\n",
379400
"Shared_Dirty: 0 kB\n",
380401
"Private_Clean: 0 kB\n",
381402
"Private_Dirty: 0 kB\n",
382403
"Referenced: 24 kB\n",
383404
"Anonymous: 0 kB\n",
405+
"KSM: 0 kB\n",
384406
"LazyFree: 0 kB\n",
385407
"AnonHugePages: 0 kB\n",
386408
"ShmemPmdMapped: 0 kB\n",
387-
"FilePmdMapped: 0 kB\n",
409+
"FilePmdMapped: 0 kB\n",
388410
"Shared_Hugetlb: 0 kB\n",
389411
"Private_Hugetlb: 0 kB\n",
390412
"Swap: 0 kB\n",
@@ -397,11 +419,11 @@ mod test {
397419
vec![
398420
create_smap_entry(
399421
"000071af8c9e6000", Perms::from("rw-s"), "0000000105830000", "000:00010", 1075, " [ anon ]",
400-
16, 4, 4, 16, 16, 0, 0, 0, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0,
422+
16, 4, 4, 16, 16, 16, 0, 0, 0, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
401423
0, "rd wr mr mw me ac sd"),
402424
create_smap_entry(
403425
"000071af6cf0c000", Perms::from("rw-s"), "0000000000000000", "000:00001", 256481, "memfd:wayland-shm (deleted)",
404-
3560, 4, 4, 532, 108, 524, 0, 8, 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
426+
3560, 4, 4, 532, 108, 0, 524, 0, 8, 0, 532, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
405427
0, "rd mr mw me sd"),
406428
],
407429
concat!(
@@ -411,16 +433,18 @@ mod test {
411433
"MMUPageSize: 4 kB\n",
412434
"Rss: 16 kB\n",
413435
"Pss: 16 kB\n",
436+
"Pss_Dirty: 16 kB\n",
414437
"Shared_Clean: 0 kB\n",
415438
"Shared_Dirty: 0 kB\n",
416439
"Private_Clean: 0 kB\n",
417440
"Private_Dirty: 16 kB\n",
418441
"Referenced: 16 kB\n",
419442
"Anonymous: 16 kB\n",
443+
"KSM: 0 kB\n",
420444
"LazyFree: 0 kB\n",
421445
"AnonHugePages: 0 kB\n",
422446
"ShmemPmdMapped: 0 kB\n",
423-
"FilePmdMapped: 0 kB\n",
447+
"FilePmdMapped: 0 kB\n",
424448
"Shared_Hugetlb: 0 kB\n",
425449
"Private_Hugetlb: 0 kB\n",
426450
"Swap: 0 kB\n",
@@ -434,16 +458,18 @@ mod test {
434458
"MMUPageSize: 4 kB\n",
435459
"Rss: 532 kB\n",
436460
"Pss: 108 kB\n",
461+
"Pss_Dirty: 0 kB\n",
437462
"Shared_Clean: 524 kB\n",
438463
"Shared_Dirty: 0 kB\n",
439464
"Private_Clean: 8 kB\n",
440465
"Private_Dirty: 0 kB\n",
441466
"Referenced: 532 kB\n",
442467
"Anonymous: 0 kB\n",
468+
"KSM: 0 kB\n",
443469
"LazyFree: 0 kB\n",
444470
"AnonHugePages: 0 kB\n",
445471
"ShmemPmdMapped: 0 kB\n",
446-
"FilePmdMapped: 0 kB\n",
472+
"FilePmdMapped: 0 kB\n",
447473
"Shared_Hugetlb: 0 kB\n",
448474
"Private_Hugetlb: 0 kB\n",
449475
"Swap: 0 kB\n",

0 commit comments

Comments
 (0)