Hi, I use cachy-os kernel patches & zram and I have noticed that nohang-desktop is not protecting from OOM anymore.
kswapd0 is triggering oom-killer.
How can I debug this further? Can I change some limits in nohang-desktop to force nohang to intervene earlier?
Logs:
Dec 23 12:11:20 gentoo nohang-desktop[81157]: PSI: 5.76 | MemAvail: 9578 M, 40.8 % | SwapFree: 528 M, 9.0 % | MemUsedZram: 479 M, 2.0 % | dMem: -36 M/s
Dec 23 12:12:21 gentoo nohang-desktop[81157]: PSI: 2.82 | MemAvail: 9880 M, 42.1 % | SwapFree: 951 M, 16.2 % | MemUsedZram: 480 M, 2.0 % | dMem: 12 M/s
...
Dec 23 12:13:22 gentoo nohang-desktop[81157]: PSI: 7.95 | MemAvail: 9149 M, 39.0 % | SwapFree: 654 M, 11.1 % | MemUsedZram: 479 M, 2.0 % | dMem: -17 M/s
Dec 23 12:13:33 gentoo kernel: kswapd0 invoked oom-killer: gfp_mask=0xcc0(GFP_KERNEL), order=0, oom_score_adj=0
Dec 23 12:13:33 gentoo kernel: CPU: 0 UID: 0 PID: 74 Comm: kswapd0 Tainted: G S W OE 6.12.6-cachyos-6.12.6-x86_64 #1
Dec 23 12:13:33 gentoo kernel: Tainted: [S]=CPU_OUT_OF_SPEC, [W]=WARN, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
Dec 23 12:13:33 gentoo kernel: Hardware name:
Dec 23 12:13:33 gentoo kernel: Sched_ext: flash (enabled+all), task: runnable_at=-1ms
Dec 23 12:13:33 gentoo kernel: Call Trace:
Dec 23 12:13:33 gentoo kernel: <TASK>
Dec 23 12:13:33 gentoo kernel: dump_stack_lvl+0x56/0x80
Dec 23 12:13:33 gentoo kernel: dump_header+0x50/0x36d
Dec 23 12:13:33 gentoo kernel: ? bpf_task_storage_get+0xec/0x100
Dec 23 12:13:33 gentoo kernel: ? ktime_get_mono_fast_ns+0x30/0xb0
Dec 23 12:13:33 gentoo kernel: ? ___ratelimit+0x99/0xf0
Dec 23 12:13:33 gentoo kernel: oom_kill_process.cold+0x8/0x8a
Dec 23 12:13:33 gentoo kernel: out_of_memory+0x102/0x410
Dec 23 12:13:33 gentoo kernel: balance_pgdat+0x778/0xb30
Dec 23 12:13:33 gentoo kernel: kswapd+0x1cd/0x350
Dec 23 12:13:33 gentoo kernel: ? complete+0x80/0x80
Dec 23 12:13:33 gentoo kernel: ? balance_pgdat+0xb30/0xb30
Dec 23 12:13:33 gentoo kernel: kthread+0xcb/0x100
Dec 23 12:13:33 gentoo kernel: ? kthread_park+0x80/0x80
Dec 23 12:13:33 gentoo kernel: ret_from_fork+0x2d/0x50
Dec 23 12:13:33 gentoo kernel: ? kthread_park+0x80/0x80
Dec 23 12:13:33 gentoo kernel: ret_from_fork_asm+0x11/0x20
Dec 23 12:13:33 gentoo kernel: </TASK>
Dec 23 12:13:33 gentoo kernel: Mem-Info:
Dec 23 12:13:33 gentoo kernel: active_anon:1399496 inactive_anon:1800837 isolated_anon:0
active_file:364556 inactive_file:538027 isolated_file:59
unevictable:7488 dirty:1723 writeback:0
slab_reclaimable:65189 slab_unreclaimable:82292
mapped:134366 shmem:5761 pagetables:22881
sec_pagetables:5215 bounce:0
kernel_misc_reclaimable:0
free:1303866 free_pcp:1856 free_cma:0
Dec 23 12:13:33 gentoo kernel: Node 0 active_anon:5597984kB inactive_anon:7203348kB active_file:1458224kB inactive_file:2152108kB unevictable:29952kB isolated(anon):0kB isolated(file):236kB mapped:537464kB dirty:6892kB writeback:0kB shmem:23044kB shmem_thp:0kB shmem_pmdmapped:0kB anon_thp:9814016kB writeback_tmp:0kB kernel_stack:23036kB pagetables:91524kB sec_pagetables:20860kB all_unreclaimable? no
Dec 23 12:13:33 gentoo kernel: DMA free:1024kB boost:0kB min:40kB low:52kB high:64kB reserved_highatomic:0KB active_anon:0kB inactive_anon:10240kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB present:15984kB managed:15360kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
Dec 23 12:13:33 gentoo kernel: lowmem_reserve[]: 0 2683 23474 0 0
Dec 23 12:13:33 gentoo kernel: DMA32 free:86388kB boost:0kB min:7672kB low:10400kB high:13128kB reserved_highatomic:0KB active_anon:184136kB inactive_anon:2449644kB active_file:1124kB inactive_file:868kB unevictable:0kB writepending:0kB present:2813388kB managed:2747852kB mlocked:0kB bounce:0kB free_pcp:2696kB local_pcp:648kB free_cma:0kB
Dec 23 12:13:33 gentoo kernel: lowmem_reserve[]: 0 0 20790 0 0
Dec 23 12:13:33 gentoo kernel: Normal free:5128052kB boost:0kB min:59864kB low:81148kB high:102432kB reserved_highatomic:2048KB active_anon:5413384kB inactive_anon:4743680kB active_file:1456068kB inactive_file:2151516kB unevictable:29936kB writepending:6660kB present:21772288kB managed:21289640kB mlocked:29628kB bounce:0kB free_pcp:4720kB local_pcp:1316kB free_cma:0kB
Dec 23 12:13:33 gentoo kernel: lowmem_reserve[]: 0 0 0 0 0
Dec 23 12:13:33 gentoo kernel: DMA: 0*4kB 0*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 0*512kB 1*1024kB (U) 0*2048kB 0*4096kB = 1024kB
Dec 23 12:13:33 gentoo kernel: DMA32: 454*4kB (UME) 331*8kB (UME) 224*16kB (UME) 162*32kB (UME) 109*64kB (UME) 69*128kB (UME) 53*256kB (UME) 42*512kB (UME) 22*1024kB (UM) 0*2048kB 0*4096kB = 86640kB
Dec 23 12:13:33 gentoo kernel: Normal: 22142*4kB (UE) 38717*8kB (UE) 68941*16kB (UMEH) 28856*32kB (UMEH) 10626*64kB (UME) 4913*128kB (UMEH) 2383*256kB (UME) 981*512kB (UMEH) 275*1024kB (UMEH) 0*2048kB 0*4096kB = 5127600kB
Dec 23 12:13:33 gentoo kernel: Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=1048576kB
Dec 23 12:13:33 gentoo kernel: Node 0 hugepages_total=0 hugepages_free=0 hugepages_surp=0 hugepages_size=2048kB
Dec 23 12:13:33 gentoo kernel: 913829 total pagecache pages
Dec 23 12:13:33 gentoo kernel: 2066 pages in swap cache
Dec 23 12:13:33 gentoo kernel: Free swap = 324kB
Dec 23 12:13:33 gentoo kernel: Total swap = 6013180kB
Dec 23 12:13:33 gentoo kernel: 6150415 pages RAM
Dec 23 12:13:33 gentoo kernel: 0 pages HighMem/MovableOnly
Dec 23 12:13:33 gentoo kernel: 137202 pages reserved
Dec 23 12:13:33 gentoo kernel: 0 pages cma reserved
Dec 23 12:13:33 gentoo kernel: 0 pages hwpoisoned
Dec 23 12:13:33 gentoo kernel: Tasks state (memory values in pages):
Dec 23 12:13:33 gentoo kernel: [ pid ] uid tgid total_vm rss rss_anon rss_file rss_shmem pgtables_bytes swapents oom_score_adj name
Dec 23 12:13:33 gentoo kernel: [ 2898] 0 2898 45425 11955 0 11955 0 409600 480 -250 systemd-journal
Dec 23 12:13:33 gentoo kernel: [ 2934] 0 2934 8644 1248 0 1248 0 94208 1184 -1000 systemd-udevd
Dec 23 12:13:33 gentoo kernel: [ 4630] 129 4630 4705 1374 0 1374 0 81920 352 0 systemd-network
Dec 23 12:13:33 gentoo kernel: [ 4760] 101 4760 2416 736 0 736 0 65536 608 -900 dbus-daemon
Dec 23 12:13:33 gentoo kernel: [ 4761] 0 4761 2001 839 0 839 0 57344 128 0 bash
Dec 23 12:13:33 gentoo kernel: [ 4768] 0 4768 2001 454 0 454 0 53248 160 0 bash
Dec 23 12:13:33 gentoo kernel: [ 4773] 0 4773 18967 2582 480 2102 0 73728 0 0 ntpd
Dec 23 12:13:33 gentoo kernel: [ 4780] 126 4780 5056 613 0 613 0 53248 64 0 rtkit-daemon
Dec 23 12:13:33 gentoo kernel: [ 4781] 0 4781 103335 492 0 492 0 102400 128 0 scx_loader
Dec 23 12:13:33 gentoo kernel: [ 4783] 0 4783 2121 990 0 990 0 53248 384 0 smartd
Dec 23 12:13:33 gentoo kernel: [ 4787] 0 4787 4607 1504 64 1440 0 77824 832 0 snmpd
Dec 23 12:13:33 gentoo kernel: [ 4801] 0 4801 3655 1227 0 1227 0 73728 384 0 systemd-logind
Dec 23 12:13:33 gentoo kernel: [ 4802] 0 4802 10435 313 0 313 0 69632 192 0 sensord
Dec 23 12:13:33 gentoo kernel: [ 4804] 0 4804 3452 1121 0 1121 0 73728 256 0 systemd-machine
Dec 23 12:13:33 gentoo kernel: [ 4808] 0 4808 591 363 0 363 0 49152 0 0 lowlatency
Dec 23 12:13:33 gentoo kernel: [ 4810] 0 4810 41452 1215 96 1119 0 73728 544 -999 ananicy-cpp
Dec 23 12:13:33 gentoo kernel: [ 4824] 0 4824 618 259 0 259 0 45056 0 0 netatopd
Dec 23 12:13:33 gentoo kernel: [ 4831] 84 4831 9029 988 32 956 0 69632 160 0 upsd
Dec 23 12:13:33 gentoo kernel: [ 4852] 0 4852 54739 538 27 511 0 94208 2272 0 scx_flash
Dec 23 12:13:33 gentoo kernel: [ 4856] 0 4856 88836 4069 0 4069 0 200704 6880 0 python3
Dec 23 12:13:33 gentoo kernel: [ 4881] 0 4881 36929 3777 0 3777 0 147456 544 0 sddm
Dec 23 12:13:33 gentoo kernel: [ 4884] 0 4884 2346 652 0 652 0 57344 160 0 upsmon
Dec 23 12:13:33 gentoo kernel: [ 4976] 84 4976 2942 1425 8 1417 0 61440 256 0 upsmon
Dec 23 12:13:33 gentoo kernel: [ 5117] 65534 5117 1424 328 1 327 0 53248 96 0 dnsmasq
Dec 23 12:13:33 gentoo kernel: [ 5118] 0 5118 1424 296 33 263 0 53248 32 0 dnsmasq
Dec 23 12:13:33 gentoo kernel: [ 5149] 65534 5149 1424 313 1 312 0 57344 64 0 dnsmasq
Dec 23 12:13:33 gentoo kernel: [ 5150] 0 5150 1424 129 1 128 0 57344 64 0 dnsmasq
Dec 23 12:13:33 gentoo kernel: [ 5153] 0 5153 15066 698 0 698 0 155648 6624 0 python3
Dec 23 12:13:33 gentoo kernel: [ 5345] 0 5345 17298 1801 0 1801 0 135168 608 0 nmbd
Dec 23 12:13:33 gentoo kernel: [ 5347] 122 5347 95334 1533 0 1533 0 102400 672 0 polkitd
Dec 23 12:13:33 gentoo kernel: [ 5350] 0 5350 18475 1894 0 1883 11 143360 640 0 winbindd
Dec 23 12:13:33 gentoo kernel: [ 5365] 0 5365 18521 1284 0 1273 11 139264 704 0 wb[GENTOO]
Dec 23 12:13:33 gentoo kernel: [ 5366] 0 5366 19556 1901 0 1871 30 151552 672 0 smbd
Dec 23 12:13:33 gentoo kernel: [ 5370] 0 5370 19088 503 2 501 0 122880 608 0 smbd-notifyd
Dec 23 12:13:33 gentoo kernel: [ 5371] 0 5371 19088 418 0 418 0 118784 672 0 smbd-cleanupd
Dec 23 12:13:33 gentoo kernel: [ 5383] 0 5383 18475 648 30 618 0 122880 576 0 wb-idmap
Dec 23 12:13:33 gentoo kernel: [ 5567] 84 5567 1236 384 1 383 0 49152 32 0 blazer_ser
Dec 23 12:13:33 gentoo kernel: [ 6142] 0 6142 77246 1263 0 1263 0 110592 672 0 upowerd
Dec 23 12:13:33 gentoo kernel: [ 6190] 0 6190 116354 1794 0 1794 0 139264 928 0 udisksd
Dec 23 12:13:33 gentoo kernel: [ 6202] 0 6202 77027 1281 0 1281 0 102400 160 0 power-profiles-
Dec 23 12:13:33 gentoo kernel: [ 8644] 0 8644 426846 2949 0 2949 0 380928 7584 0 libvirtd
Dec 23 12:13:33 gentoo kernel: [ 8981] 0 8981 17277 2498 0 2498 0 126976 448 -900 virtlogd
Dec 23 12:13:33 gentoo kernel: [ 10361] 0 10361 283303 19651 2357 11985 5309 667648 8555 0 X
Dec 23 12:13:33 gentoo kernel: [ 10391] 1000 10391 1893251 1068987 1053385 15597 5 10465280 11993 0 qemu-system-x86
Dec 23 12:13:33 gentoo kernel: [ 10501] 0 10501 19753 1255 0 1255 0 155648 704 0 smbd[192.168.12
Dec 23 12:13:33 gentoo kernel: [ 10692] 0 10692 18973 3639 0 3639 0 143360 512 0 sddm-helper
Dec 23 12:13:33 gentoo kernel: [ 10698] 1000 10698 4363 1423 0 1423 0 73728 768 100 systemd
Dec 23 12:13:33 gentoo kernel: [ 10700] 1000 10700 4185 499 6 493 0 65536 320 100 (sd-pam)
Dec 23 12:13:33 gentoo kernel: [ 10716] 1000 10716 56769 5837 2765 2458 614 225280 3115 200 pipewire
Dec 23 12:13:33 gentoo kernel: [ 10717] 1000 10717 313067 165 20 145 0 147456 2240 200 syncthing
Dec 23 12:13:33 gentoo kernel: [ 10718] 1000 10718 150037 3310 27 3283 0 282624 2391 200 wireplumber
Dec 23 12:13:33 gentoo kernel: [ 10720] 1000 10720 44355 1448 0 1421 27 122880 3220 200 pipewire-pulse
Dec 23 12:13:33 gentoo kernel: [ 10730] 1000 10730 282600 11868 60 11808 0 589824 3680 0 kwalletd6
Dec 23 12:13:33 gentoo kernel: [ 10735] 1000 10735 2003 899 128 771 0 53248 480 200 dbus-daemon
Dec 23 12:13:33 gentoo kernel: [ 10742] 1000 10742 53146 4349 0 4349 0 229376 1120 0 startplasma-x11
Dec 23 12:13:33 gentoo kernel: [ 10749] 1000 10749 330348 6593 3805 2788 0 282624 5481 200 syncthing
Dec 23 12:13:33 gentoo kernel: [ 10839] 1000 10839 269925 11049 0 11049 0 524288 3296 200 kglobalacceld
Dec 23 12:13:33 gentoo kernel: [ 10846] 1000 10846 269067 1625 0 1625 0 196608 576 200 xdg-desktop-por
Dec 23 12:13:33 gentoo kernel: [ 10853] 1000 10853 132849 1241 0 1241 0 135168 192 200 xdg-document-po
Dec 23 12:13:33 gentoo kernel: [ 10860] 1000 10860 76908 1214 0 1214 0 102400 128 200 xdg-permission-
Dec 23 12:13:33 gentoo kernel: [ 10870] 1000 10870 597 450 0 450 0 49152 0 200 fusermount3
Dec 23 12:13:33 gentoo kernel: [ 10879] 1000 10879 281566 11830 0 11830 0 585728 3680 200 ksmserver
Dec 23 12:13:33 gentoo kernel: [ 10881] 1000 10881 450453 13672 68 13604 0 802816 8864 200 kded6
Dec 23 12:13:33 gentoo kernel: [ 10882] 1000 10882 547759 26390 8172 18218 0 1097728 10592 200 kwin_x11
Dec 23 12:13:33 gentoo kernel: [ 10940] 1000 10940 824364 77152 46116 31036 0 2265088 72640 200 plasmashell
Dec 23 12:13:33 gentoo kernel: [ 10955] 1000 10955 57434 1027 0 1027 0 86016 256 200 dconf-service
Dec 23 12:13:33 gentoo kernel: [ 10987] 1000 10987 294306 11522 0 11522 0 540672 3360 200 kactivitymanage
Dec 23 12:13:33 gentoo kernel: [ 10989] 1000 10989 262478 10200 38 10162 0 466944 2400 200 gmenudbusmenupr
Dec 23 12:13:33 gentoo kernel: [ 10990] 1000 10990 281625 11660 44 11616 0 589824 3648 200 kaccess
Dec 23 12:13:33 gentoo kernel: [ 10991] 1000 10991 281318 11948 0 11948 0 589824 3392 200 polkit-kde-auth
Dec 23 12:13:33 gentoo kernel: [ 10992] 1000 10992 335590 11941 0 11941 0 606208 3264 200 org_kde_powerde
Dec 23 12:13:33 gentoo kernel: [ 10993] 1000 10993 282106 11759 0 11759 0 577536 3776 200 xdg-desktop-por
Dec 23 12:13:33 gentoo kernel: [ 10994] 1000 10994 262311 10159 0 10159 0 471040 2400 200 xembedsniproxy
Dec 23 12:13:33 gentoo kernel: [ 11053] 1000 11053 41652 4677 608 4069 0 184320 960 200 ksystemstats
Dec 23 12:13:33 gentoo kernel: [ 11102] 1000 11102 1865 910 0 910 0 61440 96 200 xsettingsd
Dec 23 12:13:33 gentoo kernel: [ 11105] 1000 11105 55177 3615 0 3615 0 155648 640 200 kscreen_backend
Dec 23 12:13:33 gentoo kernel: [ 11200] 1000 11200 266412 9388 5 9383 0 495616 2592 200 xdg-desktop-por
Dec 23 12:13:33 gentoo kernel: [ 11202] 1000 11202 430159 14951 3775 11145 31 798720 5312 200 openrgb
Dec 23 12:13:33 gentoo kernel: [ 11216] 1000 11216 282399 11856 0 11856 0 593920 3392 200 kclockd
Dec 23 12:13:33 gentoo kernel: [ 11217] 1000 11217 309603 14917 88 14829 0 634880 5248 200 kdeconnectd
Dec 23 12:13:33 gentoo kernel: [ 11244] 1000 11244 77058 1252 0 1252 0 110592 128 200 agent
Dec 23 12:13:33 gentoo kernel: [ 11249] 1000 11249 375370 12313 34 12279 0 745472 5886 200 kalendarac
Dec 23 12:13:33 gentoo kernel: [ 11299] 1000 11299 77700 1179 0 1179 0 110592 192 200 gvfsd
Dec 23 12:13:33 gentoo kernel: [ 11324] 1000 11324 94606 1207 0 1207 0 102400 160 200 at-spi-bus-laun
Dec 23 12:13:33 gentoo kernel: [ 11333] 1000 11333 1656 709 0 709 0 53248 96 200 dbus-daemon
Dec 23 12:13:33 gentoo kernel: [ 11335] 1000 11335 58124 1403 0 1403 0 86016 192 200 at-spi2-registr
Dec 23 12:13:33 gentoo kernel: [ 11548] 0 11548 88836 1563 23 1540 0 196608 6816 0 python3
Dec 23 12:13:33 gentoo kernel: [ 11631] 1000 11631 663007 33148 4295 28853 0 962560 12800 200 looking-glass-c
Dec 23 12:13:33 gentoo kernel: [ 12134] 1000 12134 281776 11896 66 11830 0 589824 3680 200 baloorunner
Dec 23 12:13:33 gentoo kernel: [ 12792] 1000 12792 368691 25035 1848 17897 5290 786432 7449 200 konsole
Dec 23 12:13:33 gentoo kernel: [ 12820] 1000 12820 33301 3269 1729 1540 0 167936 5664 200 python2
Dec 23 12:13:33 gentoo kernel: [ 17378] 1000 17378 5210480 44311 6430 37881 0 3469312 89572 200 firefox-bin
Dec 23 12:13:33 gentoo kernel: [ 17463] 1000 17463 52527 4224 0 4206 18 217088 2144 200 Socket Process
Dec 23 12:13:33 gentoo kernel: [ 17506] 1000 17506 633751 16618 156 16419 43 946176 11086 167 Privileged Cont
Dec 23 12:13:33 gentoo kernel: [ 17565] 1000 17565 649542 17652 597 17055 0 1150976 29432 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 17572] 1000 17572 649165 17264 307 16950 7 1114112 20992 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 17685] 1000 17685 4992737 24022 3241 20781 0 2707456 61220 100 WebExtensions
Dec 23 12:13:33 gentoo kernel: [ 17716] 1000 17716 86461 5394 0 5394 0 389120 4384 200 Utility Process
Dec 23 12:13:33 gentoo kernel: [ 18183] 1000 18183 636513 16997 454 16543 0 868352 12192 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 18187] 1000 18187 635109 16764 309 16455 0 839680 12224 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 18822] 1000 18822 633958 17381 1238 16143 0 884736 9291 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 19265] 1000 19265 637918 16578 126 16439 13 937984 15904 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 19976] 130 19976 5914 2234 192 2042 0 90112 1102 0 systemd-resolve
Dec 23 12:13:33 gentoo kernel: [ 20391] 1000 20391 1935 802 32 770 0 53248 64 0 sh
Dec 23 12:13:33 gentoo kernel: [ 20394] 1000 20394 68773504 10777 2573 8196 8 974848 19264 0 jackett
Dec 23 12:13:33 gentoo kernel: [ 21269] 1000 21269 651007 21277 2833 18444 0 1105920 26381 100 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 35655] 1000 35655 755983 27376 9785 17591 0 2920448 64486 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 37314] 1000 37314 624910 15046 293 14718 35 770048 9014 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 37415] 1000 37415 101712 6086 46 6015 25 471040 2921 200 RDD Process
Dec 23 12:13:33 gentoo kernel: [ 37663] 1000 37663 664142 17055 372 16675 8 1347584 20205 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 38274] 1000 38274 658276 19628 814 18802 12 1220608 30798 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 38849] 1000 38849 670188 20306 1951 18314 41 1490944 23378 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 38991] 1000 38991 656068 18542 441 18101 0 1204224 16354 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 39893] 1000 39893 642394 19106 352 18732 22 995328 16110 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 44248] 1000 44248 648367 18586 393 18193 0 1105920 14700 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 58670] 1000 58670 655492 29989 5470 24519 0 1232896 14050 167 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 80156] 1000 80156 327963 20244 174 20070 0 811008 8320 200 yakuake
Dec 23 12:13:33 gentoo kernel: [ 80971] 1000 80971 2750 919 16 903 0 69632 864 200 bash
Dec 23 12:13:33 gentoo kernel: [ 81001] 1000 81001 2749 912 0 912 0 65536 864 200 bash
Dec 23 12:13:33 gentoo kernel: [ 81024] 1000 81024 2066 758 0 758 0 61440 96 200 su
Dec 23 12:13:33 gentoo kernel: [ 81041] 0 81041 3342 903 0 903 0 69632 1472 200 bash
Dec 23 12:13:33 gentoo kernel: [ 81157] 0 81157 6449 4910 3248 1662 0 98304 0 0 python3
Dec 23 12:13:33 gentoo kernel: [ 81176] 0 81176 151825 3901 504 3397 0 1253376 145184 200 emerge
Dec 23 12:13:33 gentoo kernel: [ 81223] 1000 81223 2749 922 0 922 0 61440 864 200 bash
Dec 23 12:13:33 gentoo kernel: [ 81293] 1000 81293 2066 767 0 767 0 57344 96 200 su
Dec 23 12:13:33 gentoo kernel: [ 81303] 0 81303 3342 874 1 873 0 69632 1472 200 bash
Dec 23 12:13:33 gentoo kernel: [ 81419] 0 81419 214637 6294 64 6230 0 987136 192 200 journalctl
Dec 23 12:13:33 gentoo kernel: [ 81965] 1000 81965 771265 39571 11373 28198 0 3452928 106239 100 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 82206] 1000 82206 625590 22442 744 21698 0 774144 7743 100 Isolated Web Co
Dec 23 12:13:33 gentoo kernel: [ 84742] 1000 84742 610500 11462 75 11371 16 479232 3296 233 Web Content
Dec 23 12:13:33 gentoo kernel: [ 85142] 1000 85142 610500 11836 398 11417 21 487424 3040 233 Web Content
Dec 23 12:13:33 gentoo kernel: [ 90419] 0 90419 646 376 0 376 0 45056 32 0 inotifywait
Dec 23 12:13:33 gentoo kernel: [ 94172] 0 94172 4550 1535 0 1535 0 81920 1536 200 python3.12
Dec 23 12:13:33 gentoo kernel: [ 94173] 0 94173 4551 1545 0 1545 0 81920 1536 200 python3.12
Dec 23 12:13:33 gentoo kernel: [ 94176] 250 94176 604 374 0 374 0 45056 32 200 sandbox
Dec 23 12:13:33 gentoo kernel: [ 94177] 250 94177 3210 875 0 875 0 69632 1216 200 bash
Dec 23 12:13:33 gentoo kernel: [ 94193] 250 94193 3215 611 0 611 0 65536 1248 200 bash
Dec 23 12:13:33 gentoo kernel: [ 94219] 250 94219 21554 895 2 893 0 225280 19936 200 ninja
Dec 23 12:13:33 gentoo kernel: [ 107345] 250 107345 3679 505 0 505 0 69632 480 200 x86_64-pc-linux
Dec 23 12:13:33 gentoo kernel: [ 107400] 250 107400 2266 564 0 564 0 57344 256 200 x86_64-pc-linux
Dec 23 12:13:33 gentoo kernel: [ 107401] 250 107401 1119335 933149 930026 3123 0 8974336 159155 200 cc1plus
Dec 23 12:13:33 gentoo kernel: [ 107402] 250 107402 2549 541 0 541 0 61440 192 200 as
Dec 23 12:13:33 gentoo kernel: [ 108109] 1000 108109 2878 867 0 867 0 61440 992 200 bash
Dec 23 12:13:33 gentoo kernel: [ 108500] 1000 108500 610500 13961 97 13864 0 483328 3264 233 Web Content
Dec 23 12:13:33 gentoo kernel: [ 108859] 250 108859 3514 2365 0 2365 0 77824 352 200 x86_64-pc-linux
Dec 23 12:13:33 gentoo kernel: [ 108877] 250 108877 2266 780 32 748 0 61440 256 200 x86_64-pc-linux
Dec 23 12:13:33 gentoo kernel: [ 108878] 250 108878 550147 382065 375082 6983 0 4345856 142272 200 cc1plus
Dec 23 12:13:33 gentoo kernel: [ 108879] 250 108879 3473 1854 960 894 0 73728 160 200 as
Dec 23 12:13:33 gentoo kernel: [ 108958] 250 108958 3514 2320 4 2316 0 69632 352 200 x86_64-pc-linux
Dec 23 12:13:33 gentoo kernel: [ 108973] 250 108973 2266 775 32 743 0 61440 256 200 x86_64-pc-linux
Dec 23 12:13:33 gentoo kernel: [ 108974] 250 108974 488514 399255 393285 5970 0 3862528 60896 200 cc1plus
Dec 23 12:13:33 gentoo kernel: [ 108976] 250 108976 2549 862 0 862 0 65536 192 200 as
Dec 23 12:13:33 gentoo kernel: [ 109030] 250 109030 3552 2417 2 2415 0 77824 352 200 x86_64-pc-linux
Dec 23 12:13:33 gentoo kernel: [ 109061] 250 109061 2266 721 0 721 0 65536 256 200 x86_64-pc-linux
Dec 23 12:13:33 gentoo kernel: [ 109062] 250 109062 361225 314781 310048 4733 0 2760704 6112 200 cc1plus
Dec 23 12:13:33 gentoo kernel: [ 109063] 250 109063 2549 936 0 936 0 57344 192 200 as
Dec 23 12:13:33 gentoo kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/user.slice/user-1000.slice/user@1000.service/app.slice/app-dummy@631f2652c7e14536a180d9bc90083198.service,task=cc1plus,pid=107401,uid=250
Dec 23 12:13:33 gentoo kernel: Out of memory: Killed process 107401 (cc1plus) total-vm:4477340kB, anon-rss:3720104kB, file-rss:12492kB, shmem-rss:0kB, UID:250 pgtables:8764kB oom_score_adj:200
Dec 23 12:13:33 gentoo systemd[1]: user@1000.service: A process of this unit has been killed by the OOM killer.
Config:
## This is the configuration file of the nohang daemon.
## The configuration includes the following sections:
## 0. Check kernel messages for OOM events
## 1. Common zram settings
## 2. Common PSI settings
## 3. Poll rate
## 4. Warnings and notifications
## 5. Soft (SIGTERM) threshold
## 6. Hard (SIGKILL) threshold
## 7. Customize victim selection: adjusting badness of processes
## 8. Customize soft corrective actions
## 9. Misc settings
## 10. Verbosity, debug, logging
## WARNING!
## - Lines starting with #, tabs and whitespace characters are comments.
## - Lines starting with @ contain optional parameters that may be repeated.
## - All values are case sensitive.
## - nohang doesn't forbid you to shoot yourself in the foot. Be careful!
## - Restart the daemon after editing the file to apply the new settings.
## - You can find the file with default values here: /usr/share/nohang/nohang.conf
## To find config keys descriptions see man(8) nohang
###############################################################################
## 0. Check kernel messages for OOM events
# @check_kmsg
## Type: boolean
## Comment/uncomment to disable/enable checking kmsg for OOM events
# @debug_kmsg
## Type: boolean
## Comment/uncomment to disable/enable debug checking kmsg
###############################################################################
1. Common zram settings
Key: zram_checking_enabled
Description:
Type: boolean
Valid values: True | False
Default value: False
zram_checking_enabled = True
###############################################################################
2. Common PSI settings
Key: psi_checking_enabled
Description:
Type: boolean
Valid values: True | False
Default value: True
psi_checking_enabled = True
Key: psi_path
Description:
Type: string
Valid values: any string
Default value: /proc/pressure/memory
psi_path = /proc/pressure/memory
Key: psi_metrics
Description:
Type: string
Valid values: some_avg10, some_avg60, some_avg300,
full_avg10, full_avg60, full_avg300
Default value: full_avg10
psi_metrics = full_avg10
Key: psi_excess_duration
Description:
Type: float
Valid values: >= 0
Default value: 30
psi_excess_duration = 30
Key: psi_post_action_delay
Description:
Type: float
Valid values: >= 10
Default value: 15
psi_post_action_delay = 15
###############################################################################
3. Poll rate
Key: fill_rate_mem
Description:
Type: float
Valid values: >= 100
Default value: 6000
fill_rate_mem = 6000
Key: fill_rate_swap
Description:
Type: float
Valid values: >= 100
Default value: 2000
fill_rate_swap = 2000
Key: fill_rate_zram
Description:
Type: float
Valid values: >= 100
Default value: 4000
fill_rate_zram = 4000
Key: max_sleep
Description:
Type: float
Valid values: >= 0.01 and >= min_sleep
Default value: 3
max_sleep = 3
Key: min_sleep
Description:
Type: float
Valid values: >= 0.01 and <= max_sleep
Default value: 0.1
min_sleep = 0.1
###############################################################################
4. Warnings and notifications
4.1. GUI notifications after corrective actions
Key: post_action_gui_notifications
Description:
Type: boolean
Valid values: True | False
Default value: True
post_action_gui_notifications = True
Key: hide_corrective_action_type
Description:
Type: boolean
Valid values: True | False
Default value: False
hide_corrective_action_type = False
4.2. Low memory warnings
Key: low_memory_warnings_enabled
Description:
Type: boolean
Valid values: True | False
Default value: True
low_memory_warnings_enabled = True
Key: warning_exe
Description:
Type: string
Valid values: any string
Default value: (empty string)
warning_exe =
Key: warning_threshold_min_mem
Description:
Type: float (with % or M)
Valid values: from the range [0; 100] %
Default value: 20 %
warning_threshold_min_mem = 20 %
Key: warning_threshold_min_swap
Description:
Type: float (with % or M)
Valid values: [0; 100] % or >= 0 M
Default value: 20 %
warning_threshold_min_swap = 25 %
Key: warning_threshold_max_zram
Description:
Type: float (with % or M)
Valid values: from the range [0; 100] %
Default value: 45 %
warning_threshold_max_zram = 45 %
Key: warning_threshold_max_psi
Description:
Type: float
Valid values: from the range [0; 100]
Default value: 10
warning_threshold_max_psi = 10
Key: min_post_warning_delay
Description:
Type: float
Valid values: >= 1
Default value: 60
min_post_warning_delay = 60
Key: env_cache_time
Description:
Type: float
Valid values: >= 0
Default value: 300
env_cache_time = 300
###############################################################################
5. Soft threshold (thresholds for sending the SIGTERM signal or
implementing other soft corrective action)
Key: soft_threshold_min_mem
Description:
Type: float (with % or M)
Valid values: from the range [0; 50] %
Default value: 5 %
soft_threshold_min_mem = 5 %
Key: soft_threshold_min_swap
Description:
Type: float (with % or M)
Valid values: [0; 100] % or >= 0 M
Default value: 10 %
soft_threshold_min_swap = 10 %
Key: soft_threshold_max_zram
Description:
Type: float (with % or M)
Valid values: from the range [10; 90] %
Default value: 55 %
soft_threshold_max_zram = 55 %
Key: soft_threshold_max_psi
Description:
Type: float
Valid values: from the range [5; 100]
Default value: 40
soft_threshold_max_psi = 40
###############################################################################
6. Hard threshold (thresholds for sending the SIGKILL signal)
Key: hard_threshold_min_mem
Description:
Type: float (with % or M)
Valid values: from the range [0; 50] %
Default value: 2 %
hard_threshold_min_mem = 2 %
Key: hard_threshold_min_swap
Description:
Type: float (with % or M)
Valid values: [0; 100] % or >= 0 M
Default value: 4 %
hard_threshold_min_swap = 4 %
Key: hard_threshold_max_zram
Description:
Type: float (with % or M)
Valid values: from the range [10; 90] %
Default value: 60 %
hard_threshold_max_zram = 60 %
Key: hard_threshold_max_psi
Description:
Type: float
Valid values: from the range [5; 100]
Default value: 90
hard_threshold_max_psi = 90
###############################################################################
7. Customize victim selection: adjusting badness of processes
7.1. Ignore positive oom_score_adj
Key: ignore_positive_oom_score_adj
Description:
Type: boolean
Valid values: True | False
Default value: False
ignore_positive_oom_score_adj = False
7.2.1. Matching process names with RE patterns change their badness
Syntax:
@BADNESS_ADJ_RE_NAME badness_adj /// RE_pattern
New badness value will be += badness_adj
It is possible to compare multiple patterns
with different badness_adj values.
Example:
@BADNESS_ADJ_RE_NAME -500 /// ^sshd$
Prefer terminating Firefox tabs instead of terminating the entire browser.
(In Chromium and Electron-based apps child processes get oom_score_adj=300
by default.)
@BADNESS_ADJ_RE_NAME 200 /// ^(Web Content|Privileged Cont|file:// Content)$
@BADNESS_ADJ_RE_NAME -200 /// ^(dnf|yum|packagekitd)$
7.2.2. Matching CGroup_v1-line with RE patterns
@BADNESS_ADJ_RE_CGROUP_V1 -50 /// ^/system\.slice/
@BADNESS_ADJ_RE_CGROUP_V1 50 /// /foo\.service$
@BADNESS_ADJ_RE_CGROUP_V1 -50 /// ^/user\.slice/
7.2.3. Matching CGroup_v2-line with RE patterns
@BADNESS_ADJ_RE_CGROUP_V2 100 /// ^/workload
7.2.4. Matching eUIDs with RE patterns
@BADNESS_ADJ_RE_UID -100 /// ^0$
7.2.5. Matching /proc/[pid]/exe realpath with RE patterns
Example:
@BADNESS_ADJ_RE_REALPATH 20 /// ^/usr/bin/foo$
Protect X.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/libexec/Xorg|/usr/lib/xorg/Xorg|/usr/lib/Xorg|/usr/bin/X|/usr/bin/Xorg|/usr/bin/Xwayland|/usr/bin/weston|/usr/bin/sway)$
Protect GNOME.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/bin/gnome-shell|/usr/bin/metacity|/usr/bin/mutter|/usr/lib/gnome-session/gnome-session-binary|/usr/libexec/gnome-session-binary|/usr/libexec/gnome-session-ctl)$
Protect KDE Plasma.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/bin/plasma-desktop|/usr/bin/plasmashell|/usr/bin/plasma_session|/usr/bin/kwin|/usr/bin/kwin_x11|/usr/bin/kwin_wayland)$
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/bin/startplasma-wayland|/usr/lib/x86_64-linux-gnu/libexec/startplasma-waylandsession|/usr/bin/ksmserver)$
Protect Cinnamon.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/bin/cinnamon|/usr/bin/muffin|/usr/bin/cinnamon-session|/usr/bin/cinnamon-launcher)$
Protect Xfce.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/bin/xfwm4|/usr/bin/xfce4-session|/usr/bin/xfce4-panel|/usr/bin/xfdesktop)$
Protect Mate.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/bin/marco|/usr/bin/mate-session|/usr/bin/caja|/usr/bin/mate-panel)$
Protect LXQt.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/bin/lxqt-panel|/usr/bin/pcmanfm-qt|/usr/bin/lxqt-session)$
Protect Budgie Desktop.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/bin/budgie-wm|/usr/bin/budgie-panel)$
Protect other.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/bin/compiz|/usr/bin/openbox|/usr/bin/fluxbox|/usr/bin/awesome|/usr/bin/icewm|/usr/bin/enlightenment|/usr/bin/gala|/usr/bin/wingpanel|/usr/bin/i3)$
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/bin/teams|/usr/bin/carla|/opt/teams/teams)$
Protect display managers.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/sbin/gdm|/usr/sbin/gdm3|/usr/sbin/sddm|/usr/bin/sddm|/usr/lib/x86_64-linux-gnu/sddm/sddm-helper|/usr/bin/slim|/usr/sbin/lightdm|/usr/libexec/gdm-session-worker|/usr/libexec/gdm-wayland-session|/usr/lib/gdm3/gdm-wayland-session|/usr/lib/gdm3/gdm-session-worker)$
@BADNESS_ADJ_RE_REALPATH -200 /// ^/usr/lib/gdm3/
Protect systemd-logind.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/lib/systemd/systemd-logind|/usr/lib/systemd/systemd-logind)$
Protect `systemd --user`.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/lib/systemd/systemd|/usr/lib/systemd/systemd)$
Protect dbus.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/bin/dbus-daemon|/usr/bin/dbus-run-session|/usr/bin/dbus-broker-launcher|/usr/bin/dbus-broker)$
Protect package managers and distro installers.
@BADNESS_ADJ_RE_REALPATH -200 /// ^(/usr/bin/calamares|/usr/bin/dpkg|/usr/bin/pacman|/usr/bin/yay|/usr/bin/pamac|/usr/bin/pamac-daemon|/usr/bin/pamac-manager|/usr/bin/emerge)$
Prefer stress.
@BADNESS_ADJ_RE_REALPATH 900 /// ^(/usr/bin/stress|/usr/bin/stress-ng)$
7.2.6. Matching /proc/[pid]/cwd realpath with RE patterns
@BADNESS_ADJ_RE_CWD 200 /// ^/home/
7.2.7. Matching cmdlines with RE patterns
WARNING: using this option can greatly slow down the search for a victim
in conditions of heavily swapping.
Prefer Chromium tabs and Electron-based apps
@BADNESS_ADJ_RE_CMDLINE 200 /// --type=renderer
Prefer Firefox tabs (Web Content and WebExtensions)
@BADNESS_ADJ_RE_CMDLINE 100 /// -appomni
@BADNESS_ADJ_RE_CMDLINE -200 /// ^/usr/lib/virtualbox
7.2.8. Matching environ with RE patterns
WARNING: using this option can greatly slow down the search for a victim
in conditions of heavily swapping.
@BADNESS_ADJ_RE_ENVIRON 100 /// USER=user
Note that you can control badness also via systemd units via
OOMScoreAdjust, see
www.freedesktop.org/software/systemd/man/systemd.exec.html#OOMScoreAdjust=
###############################################################################
8. Customize soft corrective actions
Run the command instead of sending a signal with at soft corrective action
if the victim's name or cgroup matches the regular expression.
Syntax:
KEY REGEXP SEPARATOR COMMAND
@SOFT_ACTION_RE_NAME ^foo$ /// kill -USR1 $PID
@SOFT_ACTION_RE_CGROUP_V1 ^/system\.slice/ /// systemctl restart $SERVICE
@SOFT_ACTION_RE_CGROUP_V2 /foo\.service$ /// systemctl restart $SERVICE
$PID will be replaced by process PID.
$NAME will be replaced by process name.
$SERVICE will be replaced by .service if it exists (overwise it will be
relpaced by empty line)
###############################################################################
9. Misc settings
Key: max_soft_exit_time
Description:
Type: float
Valid values: >= 0.1
Default value: 10
max_soft_exit_time = 10
Key: post_kill_exe
Description:
Type: string
Valid values: any string
Default value: (empty string)
post_kill_exe =
Key: min_badness
Description:
Type: integer
Valid values: >= 1
Default value: 1
min_badness = 1
Key: post_soft_action_delay
Description:
Type: float
Valid values: >= 0.1
Default value: 3
post_soft_action_delay = 3
Key: post_zombie_delay
Description:
Type: float
Valid values: >= 0
Default value: 0.1
post_zombie_delay = 0.1
Key: victim_cache_time
Description:
Type: float
Valid values: >= 0
Default value: 10
victim_cache_time = 10
Key: exe_timeout
Description:
Type: float
Valid values: >= 0.1
Default value: 20
exe_timeout = 20
###############################################################################
10. Verbosity, debug, logging
Key: print_config_at_startup
Description:
Type: boolean
Valid values: True | False
Default value: False
print_config_at_startup = False
Key: print_mem_check_results
Description:
Type: boolean
Valid values: True | False
Default value: False
print_mem_check_results = True
Key: min_mem_report_interval
Description:
Type: float
Valid values: >= 0
Default value: 60
min_mem_report_interval = 60
Key: print_proc_table
Description:
Type: boolean
Valid values: True | False
Default value: False
print_proc_table = True
Key: extra_table_info
Description:
WARNING: using "cmdline" or "environ" keys can greatly slow down
the search for a victim in conditions of heavy swapping.
Type: string
Valid values: None, cgroup_v1, cgroup_v2, realpath,
cwd, cmdline, environ
Default value: None
extra_table_info = None
Key: print_victim_status
Description:
Type: boolean
Valid values: True | False
Default value: True
print_victim_status = True
Key: print_victim_cmdline
Description:
Type: boolean
Valid values: True | False
Default value: False
print_victim_cmdline = False
Key: max_victim_ancestry_depth
Description:
Type: integer
Valid values: >= 1
Default value: 3
max_victim_ancestry_depth = 3
Key: print_statistics
Description:
Type: boolean
Valid values: True | False
Default value: True
print_statistics = True
Key: debug_psi
Description:
Type: boolean
Valid values: True | False
Default value: False
debug_psi = False
Key: debug_gui_notifications
Description:
Type: boolean
Valid values: True | False
Default value: False
debug_gui_notifications = True
Key: debug_sleep
Description:
Type: boolean
Valid values: True | False
Default value: False
debug_sleep = False
Key: debug_threading
Description:
Type: boolean
Valid values: True | False
Default value: False
debug_threading = False
Key: separate_log
Description:
Type: boolean
Valid values: True | False
Default value: False
separate_log = False
###############################################################################
Use cases, feature requests and any questions are welcome:
https://github.com/hakavlad/nohang/issues
Hi, I use cachy-os kernel patches & zram and I have noticed that nohang-desktop is not protecting from OOM anymore.
kswapd0 is triggering oom-killer.
How can I debug this further? Can I change some limits in nohang-desktop to force nohang to intervene earlier?
Logs:
Config: