Commit Graph

155 Commits

Author SHA1 Message Date
Carsten Grohmann
8a1083cf4b Refactoring to determine the page size 2023-03-15 23:09:01 +01:00
Carsten Grohmann
56d519cc8f Restructure storing buddyinfo and watermarks infos 2023-03-14 20:31:59 +01:00
Carsten Grohmann
470e5acf55 Restructure extraction of node with mem shortage
Watermark extraction is performed only once and the result is now
stored in OOMResult.details["trigger_proc_numa_node"].
2023-03-14 13:31:35 +01:00
Carsten Grohmann
91caad251e Add check for heavy memory fragmentation 2023-03-14 13:31:35 +01:00
Carsten Grohmann
ec8b4c2374 Add analysis why the memory request failed 2023-03-14 13:31:35 +01:00
Carsten Grohmann
beb00ce17e Add MAX_ORDER constant 2023-03-14 13:31:35 +01:00
Carsten Grohmann
8ef28a0640 Fix minor documentation typo 2023-03-14 13:31:35 +01:00
Carsten Grohmann
5c232cb773 Show explanation for resident mem < virtual mem 2023-03-14 13:31:35 +01:00
Carsten Grohmann
3620287f82 Fix wrong line break in RHEL7 OOM example 2023-02-12 20:22:29 +01:00
Carsten Grohmann
4011c1f755 Calculation of memory zones decimal GFP mask
The calculation from the decimal value of the CFP mask is more reliable
than checking whether the strings "DMA32" and "DMA" are included.
2023-01-23 21:07:50 +01:00
Carsten Grohmann
17536301d6 Extract and store memory watermark information 2023-01-14 22:14:03 +01:00
Carsten Grohmann
fd3acbb16d Extract free memory of each node from buddy info 2023-01-14 21:54:44 +01:00
Carsten Grohmann
48cc058df1 Update copyright years 2023-01-13 22:12:43 +01:00
Carsten Grohmann
7907c6265f Add debug messages to show in notification box
Rename show_notifybox() to add_to_notifybox() to use a more meaningful
name.
2023-01-13 22:12:43 +01:00
Carsten Grohmann
f281642379 Extract and store free memory chunks 2023-01-13 22:12:43 +01:00
Carsten Grohmann
d23f2dc23c Split OOMDisplay.show() into smaller pieces
to improve the readability
2022-11-27 10:36:07 +01:00
Carsten Grohmann
ab2905e0ae Display missing memory chunks (buddyinfo) again 2022-11-24 06:46:38 +01:00
Carsten Grohmann
6ac0e86169 Remove trailing whitespaces 2022-11-19 11:47:27 +01:00
Carsten Grohmann
efa1facafd Remove unused return code in OOMAnalyser._choose_kernel_config() 2022-11-19 11:45:51 +01:00
Carsten Grohmann
35a44a6eb7 Extend mock objects to satisfy code checker 2022-11-11 20:53:07 +01:00
Carsten Grohmann
bd9d4190f3 Add GFP flags for more kernel releases 2022-08-17 21:51:08 +02:00
Carsten Grohmann
806d1e745e Rework choosing the right kernel config
This change uses a tuple of major version, minor version, and suffix to
specify the kernel version to which the configuration matches.

This is simpler than the previously used regular expressions.
2022-08-17 21:47:37 +02:00
Carsten Grohmann
cdf4be58f9 Move RE to extract kversion to class variable 2022-08-17 21:47:37 +02:00
Carsten Grohmann
82c8af8842 Rework handling of GFP flags 2022-08-17 21:47:21 +02:00
Carsten Grohmann
84073ba0ce Fix calculation of GFP flags 2022-07-03 21:41:12 +02:00
Carsten Grohmann
be9bda6536 Convert to int to satisfy Python for unit tests 2022-06-28 20:43:34 +02:00
Carsten Grohmann
5174b0a23a Move extracting GPF flags to own function 2022-06-28 20:38:51 +02:00
Carsten Grohmann
6d8851b1d6 Blackify source
Use Black "The uncompromising code formatter" to automatically format
the source code in a consistent manner.
2022-06-27 21:19:21 +02:00
Carsten Grohmann
dcd8055258 Fix memory calculation in summary section 2022-03-26 12:26:52 +01:00
Carsten Grohmann
9d8a180c8d Start new development cycle 2022-01-14 20:48:23 +01:00
Carsten Grohmann
a15637af71 Bump version number to 0.5.0 2022-01-12 20:38:14 +01:00
Carsten Grohmann
c926a2ebf9 Use more JS-like syntax for mock objects 2022-01-11 17:29:31 +01:00
Carsten Grohmann
9e22c5cdec Rework memory charts to show all items in legend 2022-01-11 17:26:19 +01:00
Carsten Grohmann
e320fa56a0 Update copyright years 2022-01-02 13:35:09 +01:00
Carsten Grohmann
7d6ba199b7 Unify naming 2021-12-26 23:33:07 +01:00
Carsten Grohmann
ca2d1c899f Fix converting to Unix LF 2021-12-23 13:18:38 +01:00
Carsten Grohmann
39e1287e33 Improved appearance of SVG diagrams
The chart was widened from 400 to 500 and the font was no longer bold.

Suggested-by: Mikko Rantalainen <mikko.rantalainen@gmail.com>
2021-12-21 20:56:56 +01:00
Carsten Grohmann
9404c87519 Add support for newer process table format 2021-12-21 20:32:49 +01:00
Carsten Grohmann
f657ac5816 Extend JS MOC objects 2021-12-21 17:25:37 +01:00
Carsten Grohmann
a7e1e4cc64 Add support for journalctl output
The lines in the "Mem-Info:" block start with spaces instead of date /
time / hostname. As a result, removing the needless columns no longer
works correctly.

Suggested-by: Mikko Rantalainen <mikko.rantalainen@gmail.com>
2021-11-29 20:59:14 +01:00
Carsten Grohmann
7038cced1f Fix finding line with "CPU:"
The line is used to calculate the number of leading columns to remove.
Depending on the OOM version the pattern is on second or third oom line.
2021-11-29 17:23:10 +01:00
Carsten Grohmann
b8a858dba3 Remove obsolete comment lines 2021-10-25 22:06:41 +02:00
Carsten Grohmann
aa28e0bb7c Hide "OOM Score" if not available 2021-10-25 22:06:17 +02:00
Carsten Grohmann
f95899d7d5 Fix detecting Ubuntu 2021-10-23 20:43:12 +02:00
Carsten Grohmann
5b9a4712e2 Add support for newer kernels
Suggested-by: Mikko Rantalainen <mikko.rantalainen@gmail.com>
2021-10-23 20:29:49 +02:00
Carsten Grohmann
fd3372b54b Filter out non-existent elements from SVG making 2021-10-20 21:32:57 +02:00
Carsten Grohmann
c8a6f74d03 Move more configuration to class BaseKernelConfig 2021-10-09 23:22:12 +02:00
Carsten Grohmann
c1a5ed3420 Add support for systems w/o swap
Suggested-by: Mikko Rantalainen <mikko.rantalainen@gmail.com>
2021-10-09 22:06:16 +02:00
Carsten Grohmann
8ed7678a74 Add support for manually triggered OOM
Suggested-by: Mikko Rantalainen <mikko.rantalainen@gmail.com>
2021-10-04 20:46:43 +02:00
Carsten Grohmann
7af0c1d7e8 Restructure code to analyse OOM
This code changes should simplify future extension of the analysis and
calculation code.
2021-09-27 21:06:47 +02:00