diff --git a/nohang_new.conf b/nohang_new.conf index dee6712..41685ba 100644 --- a/nohang_new.conf +++ b/nohang_new.conf @@ -1,63 +1,102 @@ -This is nohang config file. -Lines starting with $ contain obligatory parameters. -Lines starting with @ contain optional parameters. -Other lines are comments. -1. Ignore PSI. + This is nohang config file. + Lines starting with $ contain obligatory parameters. + Lines starting with @ contain optional parameters. + Other lines are comments. + + + 1. Ignore PSI and zram. $IGNORE_PSI = TRUE +$IGNORE_ZRAM = TRUE -2. Poll rate + + 2. Poll rate $POLL_RATE = 60 -$POLL_RATE_PROPORTIONS = 6:3:1 -$MIN_SLEEP_TIME = 0.1 -$MAX_SLEEP_TIME = 1 +$MIN_SLEEP = 0.1 +$MAX_SLEEP = 2 -3. SIGKILL-related parameters -$SIGKILL_MIN_MEM = 5 % -$SIGKILL_MIN_SWAP = 5 % -$SIGKILL_MAX_ZRAM = 55 % -$SIGKILL_MAX_PSI_SOME_AVG10 = 90 -$DELAY_AFTER_SIGKILL = 0.8 -$DELAY_AFTER_AVG10_SIGKILL = 60 - -4. SIGTERM-related parameters - -$SIGTERM_MIN_MEM = 10 % -$SIGTERM_MIN_SWAP = 10 % -$SIGTERM_MAX_ZRAM = 50 % -$SIGTERM_MAX_PSI_SOME_AVG10 = 60 -$DELAY_AFTER_SIGTERM = 0.2 -$DELAY_AFTER_AVG10_SIGTERM = 40 - @EXE_INSTEAD_OF_SIGTERM @CMDLINE_RE foo /// exit 0 - @EXE_INSTEAD_OF_SIGTERM @PROCESSNAME_RE foo /// kill -9 $PID - @EXE_INSTEAD_OF_SIGTERM @UID_RE foo /// pkill $NAME - -5. GUI nitifications + 3. GUI notifications $GUI_CORRECTIVE_ACTIONS = FALSE $GUI_LOW_MEMORY_WARNINGS = FALSE -$GUI_WARNINGS_MIN_MEM = 20% -$GUI_WARNINGS_MIN_SWAP = 20% +$GUI_WARNINGS_MIN_MEM = 20 % +$GUI_WARNINGS_MIN_SWAP = 20 % $GUI_WARNINGS_MAX_ZRAM = 45 % -$GUI_MIN_TIME_BETWEEN_WARNINGS = 15 +$GUI_MIN_DELAY_AFTER_WARNING = 15 -6. Adjusting badness of processes +@EXE_INSTEAD_OF_GUI_WARNING wall -n "LOW MEMORY!" +@EXE_INSTEAD_OF_GUI_WARNING echo 'test' +@EXE_INSTEAD_OF_GUI_WARNING echo 'test2' - @OOM_SCORE_ADJ_LIMIT = 50 - @PROCESSNAME_RE -100 /// ^Xorg$ - @CMDLINE_RE 300 /// -childID|--type=renderer - @UID_RE -100 /// ^0$ -7. Avoiding killing small processes (innocent victims) + 4. SIGTERM-related parameters -$MIN_VICTIM_BADNESS = 10 +$SIGTERM_MIN_MEM = 10 % +$SIGTERM_MIN_SWAP = 10 % +$SIGTERM_MAX_ZRAM = 50 % +$DELAY_AFTER_SIGTERM = 0.2 -8. Verbosity +$SIGTERM_MAX_PSI_SOME_AVG10_THRESHOLD = 60 +$SIGTERM_MAX_PSI_SOME_AVG10_DURATION = 5 +$DELAY_AFTER_SIGTERM_PSI_SOME_AVG10 = 40 + + The execution of specified command instead of sending a SIGTERM signal. + Syntax example: + /// + +@EXE_INSTEAD_OF_SIGTERM_RE_PROCESSNAME ^foo$ /// kill -9 $PID && echo "Praise KEK, kill $NAME" & + +@EXE_INSTEAD_OF_SIGTERM_RE_CMDLINE ^/sbin/foo /// systemctl restart foo + +@EXE_INSTEAD_OF_SIGTERM_RE_UID ^1000$ /// pkill -SEGV $NAME +@EXE_INSTEAD_OF_SIGTERM_RE_UID ^1001$ /// pkill -HUP $NAME + + + 5. SIGKILL-related parameters + +$SIGKILL_MIN_MEM = 5 % +$SIGKILL_MIN_SWAP = 5 % +$SIGKILL_MAX_ZRAM = 55 % +$DELAY_AFTER_SIGKILL = 1 + +$SIGKILL_MAX_PSI_SOME_AVG10_THRESHOLD = 90 +$SIGKILL_MAX_PSI_SOME_AVG10_DURATION = 5 +$DELAY_AFTER_SIGKILL_PSI_SOME_AVG10 = 60 + + + 6. Adjusting badness of processes + +$OOM_SCORE_ADJ_LIMIT = -1 + + + Badness adjusting by matching process name, cmdline and eUID with specified regular expression. + Example badness adj rules + /// + +@BADNESS_ADJ_RE_CMDLINE -childID|--type=renderer /// 200 + +@BADNESS_ADJ_RE_NAME ^Xorg$ /// -100 + +@BADNESS_ADJ_RE_UID ^0$ /// -50 + + + 7. Avoid killing small processes (innocent victims) + +$MIN_VICTIM_BADNESS = 20 + + + 8. Verbosity + +$PRINT_CONFIG_AT_STARTUP = FALSE + +$PRINT_TOTAL_STAT = TRUE -$PRINT_CONF_AT_STARTUP = FALSE $PRINT_MEM_CHECK_RESULTS = FALSE +$MIN_DELAY_AFTER_PRINT_MEM_CHECK_RESULTS = 60 + $PRINT_SLEEP_PERIODS = FALSE +