diff --git a/measurements/expe003/readme.md b/measurements/expe003/readme.md new file mode 100644 index 0000000..da1f6ca --- /dev/null +++ b/measurements/expe003/readme.md @@ -0,0 +1,236 @@ + +## try to figure out a map from [text](src/sumfinder/simplification/treemap000.md) + +# 14/08/2024 + +### map2 + +[^10] shows that is also accounted in `Inactive(anon)` and `Inactive`, which leads me to think of an alternate segmentation (segmentation2) +```md +- 196498248 kB `MemTotal` + - 100883568 kB `Active` + - 38741516 kB `Active(anon)` + - 62142052 kB `Active(file)` + - 91970056 kB `Inactive` + - 26288040 kB `Inactive(anon)` + - 65682016 kB `Inactive(file)` + - 3644624 kB +``` + +[^tmpfs_computation]: we know from [^8] and [^6] that `Cache` = `pagecache` + `tmpfs`. So in the case of [text](measurements/bug3897/alambix97/20240805-191606-meminfo.stdout): + +`tmpfs` = `Cache` - `pagecache` +`tmpfs` = 127870960 kB - 127824068 kB +`tmpfs` = 46892 kB + +note: we know from [^6] that `Shmem` = `tmpfs` + `shared-mem`. So in the case of [text](measurements/bug3897/alambix97/20240805-191606-meminfo.stdout), where `Shmem` = 68316 kB, we can check that `Shmem` > `tmpfs`, and therefore `shared-mem` has a positive value, which is reassuring. + + +### map3: MemTotal = Active + Inactive + KReclaimable + SwapCached + SUnreclaim + DirectMap4k + Buffers + Unevictable + Mlocked + KernelStack + Writeback + HardwareCorrupted + +This equation (equation 21 from [[text](../expe001.5/simplification/treemap000.md)]) was randomly picked from sumfinder using [text](measurements/bug3897/alambix97/20240805-191606-meminfo.stdout). + +```md +- 196498248 kB `MemTotal` (segmentation1) + - 100883568 kB `Active` + - 62142052 kB `Active(file)` + - 38741516 kB `Active(anon)` + - 91970056 kB `Inactive` + - 65682016 kB `Inactive(file)` + - 26288040 kB `Inactive(anon)` + - 1944992 kB `Slab` + - 1223464 kB `KReclaimable` + - 1223464 kB `SReclaimable` + - 0 kB + - 721528 kB `SUnreclaim` + - 1063208 kB `SwapCached` + - 541144 kB `DirectMap4k` + - 31232 kB `Buffers` + - 22480 kB `Unevictable` + - 19408 kB `Mlocked` + - 16688 kB `KernelStack` + - 5420 kB `Writeback` + - 52 kB `HardwareCorrupted` +``` + +check: +```py +>>> 196498248 - (100883568 + 91970056 + 1944992 + 1063208 + 541144 + 31232 + 22480 + 19408 + 16688 + 5420 + 52) +0 +``` +-> problem:where is MemFree (784240 kB) in this picture, as from [^11], MemFree is on physical ram ? + + +### map4 + +choose another equation from [text](measurements/bug3897/alambix97/20240805-191606-meminfo.stdout). + +#### simplification 1 + +-> filter equations with MemTotal = +-> removed equations without MemFree +-> removed equations without SwapCached + +1. MemTotal = Active(file) + AnonHugePages + Active(anon) + Inactive(anon) + Dirty + DirectMap2M + Slab + SReclaimable + SwapCached + MemFree + SUnreclaim + VmallocUsed + PageTables + Percpu + Mapped + Buffers + Mlocked + Writeback + Hugepagesize + HardwareCorrupted +3. MemTotal = Active(file) + AnonHugePages + Active(anon) + Inactive(anon) + Dirty + DirectMap2M + Slab + KReclaimable + SwapCached + MemFree + SUnreclaim + VmallocUsed + PageTables + Percpu + Mapped + Buffers + Mlocked + Writeback + Hugepagesize + HardwareCorrupted + +2. MemTotal = Active(file) + AnonHugePages + Active(anon) + Inactive(anon) + Dirty + DirectMap2M + Slab + SReclaimable + SwapCached + MemFree + SUnreclaim + DirectMap4k + VmallocUsed + Unevictable + Mlocked + KernelStack +4. MemTotal = Active(file) + AnonHugePages + Active(anon) + Inactive(anon) + Dirty + DirectMap2M + Slab + KReclaimable + SwapCached + MemFree + SUnreclaim + DirectMap4k + VmallocUsed + Unevictable + Mlocked + KernelStack + +11. MemTotal = Active + AnonHugePages + Inactive(anon) + Dirty + DirectMap2M + Slab + SReclaimable + SwapCached + MemFree + SUnreclaim + VmallocUsed + PageTables + Percpu + Mapped + Buffers + Mlocked + Writeback + Hugepagesize + HardwareCorrupted +13. MemTotal = Active + AnonHugePages + Inactive(anon) + Dirty + DirectMap2M + Slab + KReclaimable + SwapCached + MemFree + SUnreclaim + VmallocUsed + PageTables + Percpu + Mapped + Buffers + Mlocked + Writeback + Hugepagesize + HardwareCorrupted + +12. MemTotal = Active + AnonHugePages + Inactive(anon) + Dirty + DirectMap2M + Slab + SReclaimable + SwapCached + MemFree + SUnreclaim + DirectMap4k + VmallocUsed + Unevictable + Mlocked + KernelStack +14. MemTotal = Active + AnonHugePages + Inactive(anon) + Dirty + DirectMap2M + Slab + KReclaimable + SwapCached + MemFree + SUnreclaim + DirectMap4k + VmallocUsed + Unevictable + Mlocked + KernelStack + +23. MemTotal = Cached + SwapTotal + Inactive(anon) + DirectMap2M + SReclaimable + SwapCached + MemFree + DirectMap4k + PageTables + Percpu + KernelStack + Writeback + HardwareCorrupted +24. MemTotal = Cached + SwapTotal + Inactive(anon) + DirectMap2M + KReclaimable + SwapCached + MemFree + DirectMap4k + PageTables + Percpu + KernelStack + Writeback + HardwareCorrupted + +#### simplification 2 + +-> removed doublons equations with KReclaimable because KReclaimable=SReclaimable and KReclaimable is supposed to contain SReclaimable + +1. MemTotal = Active(file) + AnonHugePages + Active(anon) + Inactive(anon) + Dirty + DirectMap2M + Slab + SReclaimable + SwapCached + MemFree + SUnreclaim + VmallocUsed + PageTables + Percpu + Mapped + Buffers + Mlocked + Writeback + Hugepagesize + HardwareCorrupted + +2. MemTotal = Active(file) + AnonHugePages + Active(anon) + Inactive(anon) + Dirty + DirectMap2M + Slab + SReclaimable + SwapCached + MemFree + SUnreclaim + DirectMap4k + VmallocUsed + Unevictable + Mlocked + KernelStack + +11. MemTotal = Active + AnonHugePages + Inactive(anon) + Dirty + DirectMap2M + Slab + SReclaimable + SwapCached + MemFree + SUnreclaim + VmallocUsed + PageTables + Percpu + Mapped + Buffers + Mlocked + Writeback + Hugepagesize + HardwareCorrupted + +12. MemTotal = Active + AnonHugePages + Inactive(anon) + Dirty + DirectMap2M + Slab + SReclaimable + SwapCached + MemFree + SUnreclaim + DirectMap4k + VmallocUsed + Unevictable + Mlocked + KernelStack + +23. MemTotal = Cached + SwapTotal + Inactive(anon) + DirectMap2M + SReclaimable + SwapCached + MemFree + DirectMap4k + PageTables + Percpu + KernelStack + Writeback + HardwareCorrupted + +#### simplification 3 + +-> removed equation 23 because it contains SwapTotal + +1. MemTotal = Group3 + Group1 + +2. MemTotal = Group3 + Group2 + +11. MemTotal = Group4 + Group1 + +12. MemTotal = Group4 + Group2 + +with: +Group1 = VmallocUsed + PageTables + Percpu + Mapped + Buffers + Mlocked + Writeback + Hugepagesize + HardwareCorrupted +Group2 = DirectMap4k + VmallocUsed + Unevictable + Mlocked + KernelStack +Group1 = Group2 +Group3 = Active(file) + AnonHugePages + Active(anon) + Inactive(anon) + Dirty + DirectMap2M + Slab + SReclaimable + SwapCached + MemFree + SUnreclaim +Group4 = Active + AnonHugePages + Inactive(anon) + Dirty + DirectMap2M + Slab + SReclaimable + SwapCached + MemFree + SUnreclaim +Group3 = Group4 + +#### simplification 4 + +-> to simplify, removed Group3 because Group3 = Group4 is expected because Active = Active(file) + Active(anon) + +This leaves us with + +11. MemTotal = Group4 + Group1 + +12. MemTotal = Group4 + Group2 + +with: +Group1 = VmallocUsed + PageTables + Percpu + Mapped + Buffers + Mlocked + Writeback + Hugepagesize + HardwareCorrupted +Group2 = DirectMap4k + VmallocUsed + Unevictable + Mlocked + KernelStack +Group1 = Group2 +Group4 = Active + AnonHugePages + Inactive(anon) + Dirty + DirectMap2M + Slab + SReclaimable + SwapCached + MemFree + SUnreclaim + +#### simplification 5 + +-> compare Group1 and Group2 +Group1 = VmallocUsed + PageTables + Percpu + Mapped + Buffers + Mlocked + Writeback + Hugepagesize + HardwareCorrupted +Group2 = DirectMap4k + VmallocUsed + Unevictable + Mlocked + KernelStack + +Group1 = Group5 + Group6 +Group2 = Group5 + Group7 + +with: +Group5 = VmallocUsed + Mlocked +Group6 = PageTables + Percpu + Mapped + Buffers + Writeback + Hugepagesize + HardwareCorrupted +Group7 = DirectMap4k + Unevictable + KernelStack +Group6 = Group7 + +#### is it a coincidence that Group6 = Group7 ? + +Check with [text](measurements/bug3897/alambix98/20240806-223916-meminfo.stdout) + +PageTables: 66404 kB +Percpu: 229632 kB +Mapped: 143340 kB +Buffers: 843076 kB +Writeback: 0 kB +Hugepagesize: 2048 kB +HardwareCorrupted: 0 kB +--------------------------- +Group6 1284500 kB + +DirectMap4k: 551400 kB +Unevictable: 22480 kB +KernelStack: 17408 kB +--------------------------- +Group7 591288 kB + +-> ok: this means that Group6 = Group7 is a coincidence + +-> I tend to prefer to beleive that Group6 is the right one, but this needs to be checked though + + +### sorted [text](measurements/bug3897/alambix97/20240805-191606-meminfo.stdout): + +```s +VmallocTotal: 34359738367 kB +MemTotal: 196498248 kB +DirectMap1G: 195035136 kB +Committed_AS: 138311772 kB +CommitLimit: 130247072 kB +MemAvailable: 128385580 kB +Cached: 127870960 kB +Active: 100883568 kB +Inactive: 91970056 kB +Inactive(file): 65682016 kB +AnonPages: 63908328 kB +Active(file): 62142052 kB +AnonHugePages: 48064512 kB +Active(anon): 38741516 kB +Inactive(anon): 26288040 kB +SwapTotal: 31997948 kB +Dirty: 8346464 kB +DirectMap2M: 6283264 kB +Slab: 1944992 kB +KReclaimable: 1223464 kB +SReclaimable: 1223464 kB +SwapCached: 1063208 kB +MemFree: 784240 kB +SUnreclaim: 721528 kB +DirectMap4k: 541144 kB +VmallocUsed: 295248 kB +PageTables: 213772 kB +Percpu: 210048 kB +Mapped: 117740 kB +Buffers: 31232 kB +Unevictable: 22480 kB +Mlocked: 19408 kB +Writeback: 5420 kB +Shmem: 68316 kB +KernelStack: 16688 kB +Hugepagesize: 2048 kB +HardwareCorrupted: 52 kB +``` + + +## filter out the sums that are not valid for other meminfo stdout + +In order to remove the concidences in the sums found + +```sh +starting sums (90 sums): +[{'total': 'MemTotal', 'components': ['Active(file)', 'AnonHugePages', 'Active(anon)', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'Mlocked', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active(file)', 'AnonHugePages', 'Active(anon)', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'Unevictable', 'Mlocked', 'KernelStack']}, {'total': 'MemTotal', 'components': ['Active(file)', 'AnonHugePages', 'Active(anon)', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'KReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'Mlocked', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active(file)', 'AnonHugePages', 'Active(anon)', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'KReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'Unevictable', 'Mlocked', 'KernelStack']}, {'total': 'MemTotal', 'components': ['Inactive(file)', 'Active(file)', 'Active(anon)', 'Inactive(anon)', 'SReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Inactive(file)', 'Active(file)', 'Active(anon)', 'Inactive(anon)', 'KReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Inactive(file)', 'Active(file)', 'Active(anon)', 'Inactive(anon)', 'Slab', 'SwapCached', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Inactive', 'Active(file)', 'Active(anon)', 'SReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Inactive', 'Active(file)', 'Active(anon)', 'KReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Inactive', 'Active(file)', 'Active(anon)', 'Slab', 'SwapCached', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'AnonHugePages', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'Mlocked', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'AnonHugePages', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'Unevictable', 'Mlocked', 'KernelStack']}, {'total': 'MemTotal', 'components': ['Active', 'AnonHugePages', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'KReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'Mlocked', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'AnonHugePages', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'KReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'Unevictable', 'Mlocked', 'KernelStack']}, {'total': 'MemTotal', 'components': ['Active', 'AnonHugePages', 'Active(anon)', 'DirectMap2M', 'SReclaimable', 'DirectMap4k', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Buffers', 'Mlocked', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'AnonHugePages', 'Active(anon)', 'DirectMap2M', 'KReclaimable', 'DirectMap4k', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Buffers', 'Mlocked', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'Inactive(file)', 'Inactive(anon)', 'SReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'Inactive(file)', 'Inactive(anon)', 'KReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'Inactive(file)', 'Inactive(anon)', 'Slab', 'SwapCached', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'Inactive', 'SReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'Inactive', 'KReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'Inactive', 'Slab', 'SwapCached', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Cached', 'SwapTotal', 'Inactive(anon)', 'DirectMap2M', 'SReclaimable', 'SwapCached', 'MemFree', 'DirectMap4k', 'PageTables', 'Percpu', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Cached', 'SwapTotal', 'Inactive(anon)', 'DirectMap2M', 'KReclaimable', 'SwapCached', 'MemFree', 'DirectMap4k', 'PageTables', 'Percpu', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Cached', 'SwapTotal', 'Inactive(anon)', 'Dirty', 'SwapCached', 'SUnreclaim', 'Percpu', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Cached', 'Active(anon)', 'Inactive(anon)', 'SReclaimable', 'SwapCached', 'SUnreclaim', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'KernelStack', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Cached', 'Active(anon)', 'Inactive(anon)', 'KReclaimable', 'SwapCached', 'SUnreclaim', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'KernelStack', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Cached', 'Active(anon)', 'Inactive(anon)', 'Slab', 'SwapCached', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'KernelStack', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['MemAvailable', 'SwapTotal', 'Inactive(anon)', 'DirectMap2M', 'KReclaimable', 'SReclaimable', 'SwapCached', 'Buffers', 'Hugepagesize']}, {'total': 'MemTotal', 'components': ['CommitLimit', 'Active(anon)', 'Inactive(anon)', 'SUnreclaim', 'VmallocUsed', 'Mapped', 'Shmem', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['AnonPages', 'Active(file)', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'Slab', 'KReclaimable', 'SReclaimable', 'MemFree', 'DirectMap4k', 'VmallocUsed', 'Mapped', 'Shmem', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive(file)', 'Active(file)', 'SwapTotal', 'Inactive(anon)', 'DirectMap2M', 'SReclaimable', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive(file)', 'Active(file)', 'SwapTotal', 'Inactive(anon)', 'DirectMap2M', 'KReclaimable', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive(file)', 'Active(file)', 'SwapTotal', 'Inactive(anon)', 'DirectMap2M', 'Slab', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive(file)', 'Active(file)', 'Active(anon)', 'Inactive(anon)', 'SReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Inactive(file)', 'Active(file)', 'Active(anon)', 'Inactive(anon)', 'KReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Inactive', 'Active(file)', 'SwapTotal', 'DirectMap2M', 'SReclaimable', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive', 'Active(file)', 'SwapTotal', 'DirectMap2M', 'KReclaimable', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive', 'Active(file)', 'SwapTotal', 'DirectMap2M', 'Slab', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive', 'Active(file)', 'Active(anon)', 'SReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Inactive', 'Active(file)', 'Active(anon)', 'KReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Active', 'Active(file)', 'Inactive(anon)', 'KReclaimable', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'Mapped', 'Unevictable', 'KernelStack', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Active', 'Active(file)', 'Inactive(anon)', 'Slab', 'SReclaimable', 'SwapCached', 'MemFree', 'DirectMap4k', 'Mapped', 'Unevictable', 'KernelStack', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Active', 'Active(file)', 'Inactive(anon)', 'Slab', 'KReclaimable', 'SwapCached', 'MemFree', 'DirectMap4k', 'Mapped', 'Unevictable', 'KernelStack', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Active', 'Inactive(file)', 'Inactive(anon)', 'SReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Active', 'Inactive(file)', 'Inactive(anon)', 'KReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Active', 'Inactive', 'SReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Active', 'Inactive', 'KReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Cached', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'KReclaimable', 'SReclaimable', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'PageTables', 'Percpu', 'Unevictable', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Cached', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'Slab', 'SReclaimable', 'DirectMap4k', 'VmallocUsed', 'PageTables', 'Percpu', 'Unevictable', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Cached', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'Slab', 'KReclaimable', 'DirectMap4k', 'VmallocUsed', 'PageTables', 'Percpu', 'Unevictable', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Cached', 'Active(file)', 'KReclaimable', 'SReclaimable', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'PageTables', 'Percpu', 'Shmem', 'Mlocked', 'KernelStack', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Cached', 'Active(file)', 'Slab', 'SReclaimable', 'MemFree', 'DirectMap4k', 'PageTables', 'Percpu', 'Shmem', 'Mlocked', 'KernelStack', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Cached', 'Active(file)', 'Slab', 'KReclaimable', 'MemFree', 'DirectMap4k', 'PageTables', 'Percpu', 'Shmem', 'Mlocked', 'KernelStack', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Cached', 'Inactive(file)', 'SwapCached', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback', 'Hugepagesize']}, {'total': 'DirectMap1G', 'components': ['MemAvailable', 'AnonPages', 'SReclaimable', 'SwapCached', 'VmallocUsed', 'Mapped', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['MemAvailable', 'AnonPages', 'KReclaimable', 'SwapCached', 'VmallocUsed', 'Mapped', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'Committed_AS', 'components': ['AnonHugePages', 'Active(anon)', 'SwapTotal', 'Dirty', 'DirectMap2M', 'Slab', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'PageTables', 'Percpu', 'Mapped', 'Unevictable', 'Mlocked', 'Writeback', 'Hugepagesize']}, {'total': 'Committed_AS', 'components': ['Active(file)', 'SwapTotal', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'SReclaimable', 'MemFree', 'DirectMap4k', 'PageTables', 'Percpu', 'Mapped', 'Shmem', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'Committed_AS', 'components': ['Active(file)', 'SwapTotal', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'KReclaimable', 'MemFree', 'DirectMap4k', 'PageTables', 'Percpu', 'Mapped', 'Shmem', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'Committed_AS', 'components': ['AnonPages', 'SwapTotal', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Buffers', 'Mlocked', 'KernelStack', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'Committed_AS', 'components': ['Inactive(file)', 'SwapTotal', 'Inactive(anon)', 'Dirty', 'Slab', 'KReclaimable', 'SReclaimable', 'SUnreclaim', 'DirectMap4k', 'PageTables', 'Shmem', 'Unevictable', 'Mlocked', 'KernelStack', 'Hugepagesize']}, {'total': 'Committed_AS', 'components': ['Inactive', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'Unevictable', 'Mlocked', 'HardwareCorrupted']}, {'total': 'Committed_AS', 'components': ['Inactive', 'SwapTotal', 'Dirty', 'Slab', 'KReclaimable', 'SReclaimable', 'SUnreclaim', 'DirectMap4k', 'PageTables', 'Shmem', 'Unevictable', 'Mlocked', 'KernelStack', 'Hugepagesize']}, {'total': 'Committed_AS', 'components': ['Cached', 'DirectMap2M', 'Slab', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'Shmem', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'Committed_AS', 'components': ['CommitLimit', 'DirectMap2M', 'SwapCached', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Mlocked', 'Writeback', 'Hugepagesize']}, {'total': 'CommitLimit', 'components': ['AnonHugePages', 'Active(anon)', 'SwapTotal', 'Dirty', 'SwapCached', 'MemFree', 'DirectMap4k', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'KernelStack']}, {'total': 'CommitLimit', 'components': ['Active(file)', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'Slab', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'PageTables', 'Mapped', 'KernelStack', 'Writeback', 'Hugepagesize']}, {'total': 'CommitLimit', 'components': ['Inactive(file)', 'SwapTotal', 'Inactive(anon)', 'Slab', 'KReclaimable', 'SReclaimable', 'SwapCached', 'DirectMap4k', 'Percpu', 'Buffers', 'Mlocked', 'KernelStack', 'Writeback']}, {'total': 'CommitLimit', 'components': ['Inactive', 'SwapTotal', 'Slab', 'KReclaimable', 'SReclaimable', 'SwapCached', 'DirectMap4k', 'Percpu', 'Buffers', 'Mlocked', 'KernelStack', 'Writeback']}, {'total': 'CommitLimit', 'components': ['Cached', 'SwapCached', 'MemFree', 'VmallocUsed', 'Mapped', 'Shmem', 'Unevictable', 'Mlocked', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['AnonPages', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'MemFree', 'DirectMap4k', 'VmallocUsed', 'Mapped', 'Unevictable', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['Inactive(file)', 'SwapTotal', 'Inactive(anon)', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['Inactive(file)', 'SwapTotal', 'Inactive(anon)', 'KReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['Inactive(file)', 'SwapTotal', 'Inactive(anon)', 'Slab', 'SwapCached', 'MemFree', 'VmallocUsed', 'Percpu', 'Mapped', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['Inactive(file)', 'Active(file)', 'PageTables', 'Percpu', 'Shmem', 'Buffers', 'Mlocked', 'KernelStack', 'Hugepagesize']}, {'total': 'MemAvailable', 'components': ['Inactive', 'SwapTotal', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['Inactive', 'SwapTotal', 'KReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['Inactive', 'SwapTotal', 'Slab', 'SwapCached', 'MemFree', 'VmallocUsed', 'Percpu', 'Mapped', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'Cached', 'components': ['AnonPages', 'SwapTotal', 'Inactive(anon)', 'Slab', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'Percpu', 'Shmem', 'Buffers', 'KernelStack']}, {'total': 'Cached', 'components': ['AnonPages', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'Active', 'components': ['Active(anon)', 'SwapTotal', 'Inactive(anon)', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'PageTables', 'Percpu', 'Mlocked', 'Writeback', 'Hugepagesize']}, {'total': 'Active', 'components': ['Active(file)', 'Active(anon)']}, {'total': 'Inactive', 'components': ['AnonHugePages', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'SUnreclaim', 'PageTables', 'Shmem', 'Unevictable', 'KernelStack']}, {'total': 'Inactive', 'components': ['Inactive(file)', 'Inactive(anon)']}, {'total': 'Inactive(file)', 'components': ['AnonHugePages', 'Dirty', 'DirectMap2M', 'Slab', 'SUnreclaim', 'PageTables', 'Shmem', 'Unevictable', 'KernelStack']}, {'total': 'Active(file)', 'components': ['SwapTotal', 'Inactive(anon)', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'PageTables', 'Percpu', 'Mlocked', 'Writeback', 'Hugepagesize']}, {'total': 'Slab', 'components': ['SReclaimable', 'SUnreclaim']}, {'total': 'Slab', 'components': ['KReclaimable', 'SUnreclaim']}, {'total': 'KReclaimable', 'components': ['SReclaimable']}] +invalid sums (85 sums): +[{'total': 'MemTotal', 'components': ['Active(file)', 'AnonHugePages', 'Active(anon)', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'Mlocked', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active(file)', 'AnonHugePages', 'Active(anon)', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'Unevictable', 'Mlocked', 'KernelStack']}, {'total': 'MemTotal', 'components': ['Active(file)', 'AnonHugePages', 'Active(anon)', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'KReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'Mlocked', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active(file)', 'AnonHugePages', 'Active(anon)', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'KReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'Unevictable', 'Mlocked', 'KernelStack']}, {'total': 'MemTotal', 'components': ['Inactive(file)', 'Active(file)', 'Active(anon)', 'Inactive(anon)', 'SReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Inactive(file)', 'Active(file)', 'Active(anon)', 'Inactive(anon)', 'KReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Inactive(file)', 'Active(file)', 'Active(anon)', 'Inactive(anon)', 'Slab', 'SwapCached', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Inactive', 'Active(file)', 'Active(anon)', 'SReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Inactive', 'Active(file)', 'Active(anon)', 'KReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Inactive', 'Active(file)', 'Active(anon)', 'Slab', 'SwapCached', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'AnonHugePages', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'Mlocked', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'AnonHugePages', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'Unevictable', 'Mlocked', 'KernelStack']}, {'total': 'MemTotal', 'components': ['Active', 'AnonHugePages', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'KReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'Mlocked', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'AnonHugePages', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'KReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'Unevictable', 'Mlocked', 'KernelStack']}, {'total': 'MemTotal', 'components': ['Active', 'AnonHugePages', 'Active(anon)', 'DirectMap2M', 'SReclaimable', 'DirectMap4k', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Buffers', 'Mlocked', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'AnonHugePages', 'Active(anon)', 'DirectMap2M', 'KReclaimable', 'DirectMap4k', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Buffers', 'Mlocked', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'Inactive(file)', 'Inactive(anon)', 'SReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'Inactive(file)', 'Inactive(anon)', 'KReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'Inactive(file)', 'Inactive(anon)', 'Slab', 'SwapCached', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'Inactive', 'SReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'Inactive', 'KReclaimable', 'SwapCached', 'SUnreclaim', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Active', 'Inactive', 'Slab', 'SwapCached', 'DirectMap4k', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Cached', 'SwapTotal', 'Inactive(anon)', 'DirectMap2M', 'SReclaimable', 'SwapCached', 'MemFree', 'DirectMap4k', 'PageTables', 'Percpu', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Cached', 'SwapTotal', 'Inactive(anon)', 'DirectMap2M', 'KReclaimable', 'SwapCached', 'MemFree', 'DirectMap4k', 'PageTables', 'Percpu', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Cached', 'SwapTotal', 'Inactive(anon)', 'Dirty', 'SwapCached', 'SUnreclaim', 'Percpu', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Cached', 'Active(anon)', 'Inactive(anon)', 'SReclaimable', 'SwapCached', 'SUnreclaim', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'KernelStack', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Cached', 'Active(anon)', 'Inactive(anon)', 'KReclaimable', 'SwapCached', 'SUnreclaim', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'KernelStack', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['Cached', 'Active(anon)', 'Inactive(anon)', 'Slab', 'SwapCached', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'KernelStack', 'HardwareCorrupted']}, {'total': 'MemTotal', 'components': ['MemAvailable', 'SwapTotal', 'Inactive(anon)', 'DirectMap2M', 'KReclaimable', 'SReclaimable', 'SwapCached', 'Buffers', 'Hugepagesize']}, {'total': 'MemTotal', 'components': ['CommitLimit', 'Active(anon)', 'Inactive(anon)', 'SUnreclaim', 'VmallocUsed', 'Mapped', 'Shmem', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['AnonPages', 'Active(file)', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'Slab', 'KReclaimable', 'SReclaimable', 'MemFree', 'DirectMap4k', 'VmallocUsed', 'Mapped', 'Shmem', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive(file)', 'Active(file)', 'SwapTotal', 'Inactive(anon)', 'DirectMap2M', 'SReclaimable', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive(file)', 'Active(file)', 'SwapTotal', 'Inactive(anon)', 'DirectMap2M', 'KReclaimable', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive(file)', 'Active(file)', 'SwapTotal', 'Inactive(anon)', 'DirectMap2M', 'Slab', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive(file)', 'Active(file)', 'Active(anon)', 'Inactive(anon)', 'SReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Inactive(file)', 'Active(file)', 'Active(anon)', 'Inactive(anon)', 'KReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Inactive', 'Active(file)', 'SwapTotal', 'DirectMap2M', 'SReclaimable', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive', 'Active(file)', 'SwapTotal', 'DirectMap2M', 'KReclaimable', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive', 'Active(file)', 'SwapTotal', 'DirectMap2M', 'Slab', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Inactive', 'Active(file)', 'Active(anon)', 'SReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Inactive', 'Active(file)', 'Active(anon)', 'KReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Active', 'Active(file)', 'Inactive(anon)', 'KReclaimable', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'Mapped', 'Unevictable', 'KernelStack', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Active', 'Active(file)', 'Inactive(anon)', 'Slab', 'SReclaimable', 'SwapCached', 'MemFree', 'DirectMap4k', 'Mapped', 'Unevictable', 'KernelStack', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Active', 'Active(file)', 'Inactive(anon)', 'Slab', 'KReclaimable', 'SwapCached', 'MemFree', 'DirectMap4k', 'Mapped', 'Unevictable', 'KernelStack', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Active', 'Inactive(file)', 'Inactive(anon)', 'SReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Active', 'Inactive(file)', 'Inactive(anon)', 'KReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Active', 'Inactive', 'SReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Active', 'Inactive', 'KReclaimable', 'DirectMap4k', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback']}, {'total': 'DirectMap1G', 'components': ['Cached', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'KReclaimable', 'SReclaimable', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'PageTables', 'Percpu', 'Unevictable', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Cached', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'Slab', 'SReclaimable', 'DirectMap4k', 'VmallocUsed', 'PageTables', 'Percpu', 'Unevictable', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Cached', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'Slab', 'KReclaimable', 'DirectMap4k', 'VmallocUsed', 'PageTables', 'Percpu', 'Unevictable', 'KernelStack', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Cached', 'Active(file)', 'KReclaimable', 'SReclaimable', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'PageTables', 'Percpu', 'Shmem', 'Mlocked', 'KernelStack', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Cached', 'Active(file)', 'Slab', 'SReclaimable', 'MemFree', 'DirectMap4k', 'PageTables', 'Percpu', 'Shmem', 'Mlocked', 'KernelStack', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Cached', 'Active(file)', 'Slab', 'KReclaimable', 'MemFree', 'DirectMap4k', 'PageTables', 'Percpu', 'Shmem', 'Mlocked', 'KernelStack', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['Cached', 'Inactive(file)', 'SwapCached', 'VmallocUsed', 'Shmem', 'Buffers', 'KernelStack', 'Writeback', 'Hugepagesize']}, {'total': 'DirectMap1G', 'components': ['MemAvailable', 'AnonPages', 'SReclaimable', 'SwapCached', 'VmallocUsed', 'Mapped', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'DirectMap1G', 'components': ['MemAvailable', 'AnonPages', 'KReclaimable', 'SwapCached', 'VmallocUsed', 'Mapped', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'Committed_AS', 'components': ['AnonHugePages', 'Active(anon)', 'SwapTotal', 'Dirty', 'DirectMap2M', 'Slab', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'PageTables', 'Percpu', 'Mapped', 'Unevictable', 'Mlocked', 'Writeback', 'Hugepagesize']}, {'total': 'Committed_AS', 'components': ['Active(file)', 'SwapTotal', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'SReclaimable', 'MemFree', 'DirectMap4k', 'PageTables', 'Percpu', 'Mapped', 'Shmem', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'Committed_AS', 'components': ['Active(file)', 'SwapTotal', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'KReclaimable', 'MemFree', 'DirectMap4k', 'PageTables', 'Percpu', 'Mapped', 'Shmem', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'Committed_AS', 'components': ['AnonPages', 'SwapTotal', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Buffers', 'Mlocked', 'KernelStack', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'Committed_AS', 'components': ['Inactive(file)', 'SwapTotal', 'Inactive(anon)', 'Dirty', 'Slab', 'KReclaimable', 'SReclaimable', 'SUnreclaim', 'DirectMap4k', 'PageTables', 'Shmem', 'Unevictable', 'Mlocked', 'KernelStack', 'Hugepagesize']}, {'total': 'Committed_AS', 'components': ['Inactive', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'PageTables', 'Percpu', 'Mapped', 'Buffers', 'Unevictable', 'Mlocked', 'HardwareCorrupted']}, {'total': 'Committed_AS', 'components': ['Inactive', 'SwapTotal', 'Dirty', 'Slab', 'KReclaimable', 'SReclaimable', 'SUnreclaim', 'DirectMap4k', 'PageTables', 'Shmem', 'Unevictable', 'Mlocked', 'KernelStack', 'Hugepagesize']}, {'total': 'Committed_AS', 'components': ['Cached', 'DirectMap2M', 'Slab', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'Shmem', 'Buffers', 'Unevictable', 'Mlocked', 'KernelStack', 'Writeback', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'Committed_AS', 'components': ['CommitLimit', 'DirectMap2M', 'SwapCached', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'Mlocked', 'Writeback', 'Hugepagesize']}, {'total': 'CommitLimit', 'components': ['AnonHugePages', 'Active(anon)', 'SwapTotal', 'Dirty', 'SwapCached', 'MemFree', 'DirectMap4k', 'VmallocUsed', 'Percpu', 'Mapped', 'Shmem', 'KernelStack']}, {'total': 'CommitLimit', 'components': ['Active(file)', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'Slab', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'PageTables', 'Mapped', 'KernelStack', 'Writeback', 'Hugepagesize']}, {'total': 'CommitLimit', 'components': ['Inactive(file)', 'SwapTotal', 'Inactive(anon)', 'Slab', 'KReclaimable', 'SReclaimable', 'SwapCached', 'DirectMap4k', 'Percpu', 'Buffers', 'Mlocked', 'KernelStack', 'Writeback']}, {'total': 'CommitLimit', 'components': ['Inactive', 'SwapTotal', 'Slab', 'KReclaimable', 'SReclaimable', 'SwapCached', 'DirectMap4k', 'Percpu', 'Buffers', 'Mlocked', 'KernelStack', 'Writeback']}, {'total': 'CommitLimit', 'components': ['Cached', 'SwapCached', 'MemFree', 'VmallocUsed', 'Mapped', 'Shmem', 'Unevictable', 'Mlocked', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['AnonPages', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'MemFree', 'DirectMap4k', 'VmallocUsed', 'Mapped', 'Unevictable', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['Inactive(file)', 'SwapTotal', 'Inactive(anon)', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['Inactive(file)', 'SwapTotal', 'Inactive(anon)', 'KReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['Inactive(file)', 'SwapTotal', 'Inactive(anon)', 'Slab', 'SwapCached', 'MemFree', 'VmallocUsed', 'Percpu', 'Mapped', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['Inactive(file)', 'Active(file)', 'PageTables', 'Percpu', 'Shmem', 'Buffers', 'Mlocked', 'KernelStack', 'Hugepagesize']}, {'total': 'MemAvailable', 'components': ['Inactive', 'SwapTotal', 'SReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['Inactive', 'SwapTotal', 'KReclaimable', 'SwapCached', 'MemFree', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mapped', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'MemAvailable', 'components': ['Inactive', 'SwapTotal', 'Slab', 'SwapCached', 'MemFree', 'VmallocUsed', 'Percpu', 'Mapped', 'Hugepagesize', 'HardwareCorrupted']}, {'total': 'Cached', 'components': ['AnonPages', 'SwapTotal', 'Inactive(anon)', 'Slab', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'Percpu', 'Shmem', 'Buffers', 'KernelStack']}, {'total': 'Cached', 'components': ['AnonPages', 'AnonHugePages', 'Dirty', 'DirectMap2M', 'SUnreclaim', 'VmallocUsed', 'Percpu', 'Mlocked', 'KernelStack', 'Writeback', 'HardwareCorrupted']}, {'total': 'Active', 'components': ['Active(anon)', 'SwapTotal', 'Inactive(anon)', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'PageTables', 'Percpu', 'Mlocked', 'Writeback', 'Hugepagesize']}, {'total': 'Inactive', 'components': ['AnonHugePages', 'Inactive(anon)', 'Dirty', 'DirectMap2M', 'Slab', 'SUnreclaim', 'PageTables', 'Shmem', 'Unevictable', 'KernelStack']}, {'total': 'Inactive(file)', 'components': ['AnonHugePages', 'Dirty', 'DirectMap2M', 'Slab', 'SUnreclaim', 'PageTables', 'Shmem', 'Unevictable', 'KernelStack']}, {'total': 'Active(file)', 'components': ['SwapTotal', 'Inactive(anon)', 'SwapCached', 'MemFree', 'SUnreclaim', 'DirectMap4k', 'VmallocUsed', 'PageTables', 'Percpu', 'Mlocked', 'Writeback', 'Hugepagesize']}] +valid sums (5 sums): +[{'total': 'Active', 'components': ['Active(file)', 'Active(anon)']}, {'total': 'Inactive', 'components': ['Inactive(file)', 'Inactive(anon)']}, {'total': 'Slab', 'components': ['SReclaimable', 'SUnreclaim']}, {'total': 'Slab', 'components': ['KReclaimable', 'SUnreclaim']}, {'total': 'KReclaimable', 'components': ['SReclaimable']}] +last command status : [0] +``` + +-> this shows that most equations found by sumfinder on alambix97 set were not confirmed on alambix98 set diff --git a/src/expe003.py b/src/expe003.py new file mode 100755 index 0000000..98c9c2d --- /dev/null +++ b/src/expe003.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python3 +from pathlib import Path +from sumfinder import load_sums, remove_invalid_sums +from linuxmem import read_meminfo_stdout + + +def main(): + sums = load_sums(Path('../expe001.5/alambix97-meminfo-sums.json')) + print(f'starting sums ({len(sums)} sums):') + print(sums) + + variables = read_meminfo_stdout(Path('../bug3897/alambix98/20240806-223916-meminfo.stdout')) + # variables = read_meminfo_stdout(Path('../bug3897/alambix97/20240805-191606-meminfo.stdout')) + (valid_sums, invalid_sums) = remove_invalid_sums(sums, variables) + print(f'invalid sums ({len(invalid_sums)} sums):') + print(invalid_sums) + + print(f'valid sums ({len(valid_sums)} sums):') + print(valid_sums) + + +main() diff --git a/src/sumfinder/__init__.py b/src/sumfinder/__init__.py index fb42929..128f0b5 100644 --- a/src/sumfinder/__init__.py +++ b/src/sumfinder/__init__.py @@ -1,4 +1,7 @@ +from .sumfinder import Sums # noqa from .sumfinder import SumExporter # noqa +from .sumfinder import load_sums # noqa from .sumfinder import find_sums # noqa from .sumfinder import sums_to_dot # noqa from .sumfinder import find_and_graph_sums # noqa +from .sumfinder import remove_invalid_sums # noqa diff --git a/src/sumfinder/sumfinder.py b/src/sumfinder/sumfinder.py index af86148..bf45079 100755 --- a/src/sumfinder/sumfinder.py +++ b/src/sumfinder/sumfinder.py @@ -1,7 +1,7 @@ #!/usr/bin/env python3 # given a list of integer variables and their values, this tool aims at finding which varibales can be obtained by the sum of others # note : this tool is used to find the sums in the variables output by /proc/meminfo -from typing import Dict, List, Set +from typing import Dict, List, Set, Tuple import abc from pathlib import Path import json @@ -9,6 +9,7 @@ import subprocess VarName = str VarValue = int +Sums = List[Dict[VarName, List[VarName]]] class IntVariable(): @@ -48,7 +49,7 @@ class SumExporter(ISumHandler): ''' sum_file_path: Path variables: Set[IntVariable] - sums: List[Dict[VarName, List[VarName]]] + sums: Sums def __init__(self, sum_file_path: Path): self.sum_file_path = sum_file_path @@ -71,6 +72,13 @@ class SumExporter(ISumHandler): self.sum_file_path.write_text(json.dumps(root_dict)) +def load_sums(sums_file_path: Path) -> Sums: + with open(sums_file_path, 'rt', encoding='utf8') as sums_file: + root_dict = json.loads(sums_file.read()) + assert root_dict['format'] == 'sums-v001' + return root_dict['sums'] + + def explore(total: IntVariable, components: List[IntVariable], cur_sum: VarValue, cur_var_index: int, contrib_components: List[IntVariable], sum_handler: ISumHandler): # for i in range(cur_var_index): # print(' ', end='') @@ -290,3 +298,25 @@ def find_and_graph_sums(variables: Dict[str, int], set_id: str): sums_to_dot(sums_file_path, dot_file_path) print(f'creating {svg_file_path} from {dot_file_path}') subprocess.run(f'dot -Tsvg {dot_file_path} > {svg_file_path}', shell=True, check=True) + + +def remove_invalid_sums(input_sums: Sums, variables: Dict[VarName, VarValue]) -> Tuple[Sums, Sums]: + """ + returns the tuple valid_sums, invalid_sums after checking each of the sum of input_sum againts the given variables + """ + valid_sums: Sums = [] + invalid_sums: Sums = [] + for _sum in input_sums: + # for total_var_id, components in input_sums.items(): + total_var_id = _sum['total'] + components = _sum['components'] + + computed_total_value = 0 + for component_var_id in components: + computed_total_value += variables[component_var_id] + real_total_value = variables[total_var_id] + if computed_total_value == real_total_value: + valid_sums.append(_sum) + else: + invalid_sums.append(_sum) + return (valid_sums, invalid_sums)