LINUX.ORG.RU

Linux 5.10

 ,


1

3

Тихо и незаметно состоялся релиз ядра версии 5.10. По признанию самого Торвальдса, ядро «состоит из по большей части новых драйверов с вкраплениями из патчей», что неудивительно, ибо ядро получило статус LTS.

Из нового:

  • Поддержка fast_commit в файловой системе Ext4. Теперь приложения будут писать в кэш меньше метаданных, что ускорит запись! Правда, её надо явно включить при создании ФС.

  • Дополнительные настройки доступа через интерфейс io_uring, которые позволяют безопасно давать доступ к ресурсам колец дочерним приложениям.

  • Введён системный вызов process_madvise, позволяющий давать ядру информацию об ожидаемом поведении целевого приложения. Аналогичная система, кстати, используется в Android (демон ActivityManagerService).

  • Исправлена проблема 2038 года для файловой системы XFS.

и многое другое.

Также стоит отметить, что тут же была выпущена версия 5.10.1, отменяющая два изменения, приводившие к проблемам в подсистемах md и dm raid. Так что да, 0-day-патчи бывают даже для ядра Linux.

Подробнее:

>>> Скачать tarball

★★★★★

Проверено: Zhbert ()
Последнее исправление: Zhbert (всего исправлений: 7)

Ответ на: комментарий от post-factum

5.10.0-pf3, unevictable_activefile_kbytes_min=0, 8 потоков tail /dev/zero в фоне, музло с ютуба и картинка без лагов. Без жесткой защиты. Давление при этом:

# psi2log
Starting psi2log, target: SYSTEM_WIDE, mode: 1, interval: 2 sec, log file is not set, suppress output: False
PSI source dir: /proc/pressure/, source files: cpu, io, memory
All memory locked with MCL_CURRENT | MCL_FUTURE | MCL_ONFAULT
==================================================================================================================
        cpu          ||                     io                      ||                   memory
==================== || =========================================== || ===========================================
        some         ||         some         |         full         ||         some         |         full
-------------------- || -------------------- | -------------------- || -------------------- | --------------------
 avg10  avg60 avg300 ||  avg10  avg60 avg300 |  avg10  avg60 avg300 ||  avg10  avg60 avg300 |  avg10  avg60 avg300
------ ------ ------ || ------ ------ ------ | ------ ------ ------ || ------ ------ ------ | ------ ------ ------
 31.69  40.30  33.78 ||   7.26   7.45   9.96 |   0.00   0.00   3.03 ||  69.65  67.37  56.45 |  10.36  10.70  10.28
 30.12  39.74  33.71 ||   6.49   7.30   9.91 |   0.00   0.00   3.01 ||  69.17  67.36  56.52 |  10.11  10.64  10.27
 28.83  39.19  33.64 ||   5.50   7.10   9.85 |   0.00   0.00   2.99 ||  68.77  67.35  56.59 |   9.91  10.59  10.26
 29.94  39.05  33.65 ||   5.95   7.12   9.84 |   0.00   0.00   2.97 ||  70.08  67.63  56.72 |  10.47  10.67  10.28
 30.14  38.79  33.63 ||   5.23   6.96   9.78 |   0.00   0.00   2.95 ||  69.88  67.68  56.81 |  10.74  10.71  10.29
^C
=================================
Peak values:  avg10  avg60 avg300
-----------  ------ ------ ------
some cpu      31.69  40.30  33.78
-----------  ------ ------ ------
some io        7.26   7.45   9.96
full io        0.00   0.00   3.03
-----------  ------ ------ ------
some memory   70.08  67.68  56.81
full memory   10.74  10.71  10.29

Скрин монитора: https://i.ibb.co/F4pwY4r/2020-12-30-18-44-20.png

С дефолтной жесткой защитой упала сессия:

дек 30 18:24:23 PC kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/user.slice/user-1000.slice/session-6.scope,task=tail,pid=1491,uid=1000
дек 30 18:24:23 PC kernel: Out of memory: Killed process 1491 (tail) total-vm:6041696kB, anon-rss:6035828kB, file-rss:1580kB, shmem-rss:0kB, UID:1000 pgtables:11864kB oom_score_adj:0
дек 30 18:24:23 PC kernel: oom_reaper: reaped process 1491 (tail), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
дек 30 18:24:23 PC clock-applet[1404]: clock-applet: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 30 18:24:23 PC polkitd(authority=local)[867]: Unregistered Authentication Agent for unix-session:6 (system bus name :1.25, object path /org/mate/PolicyKit1/AuthenticationAgent, locale ru_RU.UTF-8) (disconnec
дек 30 18:24:23 PC unknown[1321]: mate-sensors-applet: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 30 18:24:24 PC org.a11y.atspi.Registry[1223]: XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
дек 30 18:24:24 PC org.a11y.atspi.Registry[1223]:       after 87 requests (87 known processed) with 0 events remaining.
дек 30 18:24:24 PC lightdm[1159]: pam_unix(lightdm:session): session closed for user user
дек 30 18:24:23 PC unknown[1319]: mate-brightness-applet: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 30 18:24:23 PC unknown[1306]: wnck-applet: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 30 18:24:24 PC kernel: nouveau 0000:01:00.0: Enabling HDA controller
дек 30 18:24:23 PC unknown[1434]: mate-system-monitor: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 30 18:24:23 PC unknown[1308]: notification-area-applet: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 30 18:24:23 PC unknown[1317]: mate-multiload-applet: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 30 18:24:24 PC systemd-logind[781]: Removed session 6.
hakavlad ★★★
()
Последнее исправление: hakavlad (всего исправлений: 1)
Ответ на: комментарий от post-factum

Ф33 с гномом, 200000 мягкого порога хватало для сёрфигна.

200000/0 - безопасный вариант.

Кстати, так как мягкая защита довольно крепкая, то да, 500000 таки много.

hakavlad ★★★
()
Ответ на: комментарий от post-factum

Измерение с интервалом 0.1:

MA 116.6, BU 18.0, CA 336.0, AA 232.7, IA 8950.2, AF 176.2, IF 3.3, SF 28.7, SU 7639.3, SH 169.0, SR 40.9
MA 103.1, BU 18.0, CA 335.9, AA 232.7, IA 8963.2, AF 176.2, IF 3.3, SF 24.3, SU 7643.7, SH 169.0, SR 40.9
MA 106.8, BU 18.0, CA 335.8, AA 232.7, IA 8957.9, AF 176.2, IF 3.3, SF 21.1, SU 7646.9, SH 169.0, SR 40.9
MA 103.1, BU 18.0, CA 329.7, AA 232.7, IA 8972.1, AF 176.2, IF 3.3, SF 15.9, SU 7652.1, SH 163.3, SR 40.9
MA 110.9, BU 17.9, CA 321.3, AA 232.7, IA 8970.1, AF 176.2, IF 3.3, SF 6.7, SU 7661.3, SH 154.8, SR 40.9
MA 103.8, BU 17.9, CA 334.7, AA 244.9, IA 8954.5, AF 176.2, IF 3.3, SF 4.3, SU 7663.7, SH 167.9, SR 40.9
MA 103.6, BU 17.9, CA 335.9, AA 242.8, IA 8955.3, AF 176.2, IF 3.3, SF 3.1, SU 7664.9, SH 168.8, SR 40.9
MA 102.8, BU 17.9, CA 335.9, AA 242.5, IA 8957.1, AF 176.2, IF 3.3, SF 3.0, SU 7665.0, SH 169.0, SR 40.9
MA 103.4, BU 17.9, CA 335.8, AA 242.5, IA 8956.3, AF 176.2, IF 3.3, SF 2.7, SU 7665.3, SH 169.0, SR 40.9
MA 103.1, BU 17.9, CA 335.8, AA 241.3, IA 8957.4, AF 176.2, IF 3.3, SF 2.6, SU 7665.4, SH 169.0, SR 40.9
MA 103.9, BU 17.9, CA 335.9, AA 241.2, IA 8957.1, AF 176.1, IF 3.2, SF 2.1, SU 7665.9, SH 169.1, SR 40.9
MA 102.5, BU 17.9, CA 336.0, AA 241.2, IA 8958.0, AF 176.1, IF 3.2, SF 1.8, SU 7666.2, SH 169.1, SR 40.9
MA 108.3, BU 17.8, CA 328.3, AA 313.3, IA 8881.3, AF 175.8, IF 3.0, SF 0.0, SU 7668.0, SH 161.7, SR 40.9
MA 91.5, BU 14.8, CA 313.2, AA 413.1, IA 8803.3, AF 159.8, IF 1.2, SF 0.0, SU 7668.0, SH 161.7, SR 40.9
MA 59.0, BU 14.5, CA 295.3, AA 528.1, IA 8748.6, AF 142.0, IF 0.4, SF 0.0, SU 7668.0, SH 161.9, SR 40.9
MA 48.7, BU 8.6, CA 281.1, AA 537.6, IA 8759.5, AF 122.1, IF 0.3, SF 0.0, SU 7668.0, SH 161.6, SR 40.9
MA 30.4, BU 0.9, CA 252.9, AA 538.0, IA 8795.4, AF 86.8, IF 0.4, SF 0.0, SU 7668.0, SH 160.8, SR 40.8
MA 10.1, BU 0.7, CA 205.9, AA 542.5, IA 8833.5, AF 39.3, IF 0.8, SF 0.0, SU 7668.0, SH 160.9, SR 40.7
MA 0.0, BU 0.7, CA 175.6, AA 675.9, IA 8734.4, AF 8.8, IF 1.1, SF 0.0, SU 7668.0, SH 160.8, SR 40.7
MA 24.2, BU 0.7, CA 167.1, AA 679.0, IA 8699.6, AF 0.8, IF 1.0, SF 792.6, SU 6875.4, SH 160.8, SR 40.7
MA 61.3, BU 0.7, CA 168.7, AA 679.8, IA 8659.9, AF 2.7, IF 0.8, SF 2510.9, SU 5157.1, SH 160.8, SR 40.7
MA 174.8, BU 0.7, CA 170.1, AA 678.7, IA 8543.9, AF 4.0, IF 0.8, SF 4221.6, SU 3446.4, SH 160.7, SR 40.7
MA 292.6, BU 0.7, CA 172.3, AA 680.7, IA 8422.2, AF 6.2, IF 0.9, SF 5889.1, SU 1778.9, SH 160.7, SR 40.7
MA 2688.2, BU 0.7, CA 172.4, AA 246.3, IA 6452.0, AF 8.5, IF 0.7, SF 6384.6, SU 1283.4, SH 158.2, SR 36.1
MA 7310.6, BU 0.7, CA 174.5, AA 246.1, IA 1833.6, AF 10.1, IF 0.8, SF 6384.4, SU 1283.6, SH 158.2, SR 35.4
MA 9066.4, BU 0.7, CA 176.2, AA 246.1, IA 107.8, AF 11.3, IF 1.4, SF 6386.4, SU 1281.6, SH 158.2, SR 35.2
MA 9066.5, BU 0.7, CA 177.6, AA 246.0, IA 107.8, AF 11.7, IF 2.6, SF 6386.4, SU 1281.6, SH 158.2, SR 35.2

Падение AF начинается только при обнулении свободного свопа при low > 0 и min = 0.

hakavlad ★★★
()
Ответ на: комментарий от post-factum

Похоже, что гранулярити равно нулю пока есть куда свопиться. Ибо мягкий порог крпеко держится.

hakavlad ★★★
()
Ответ на: комментарий от darkenshvein

зачем вообще разработчики юзерспейсного/десктопного линукса оставляют дефолты?

  1. Что такое «юзерспейсный линукс»?

  2. Почти все дистрибутивы пытаются сделать так, чтобы конфигурация подходила и для десктопов, и для серверов.

mikhailnov
()
Ответ на: комментарий от post-factum

Возможно даже в 300000. Просто реально нет активных, так что порог ниже. Например, после предыдущего ООМ объем активных не восстановился еще.

hakavlad ★★★
()

@post-factum @mikhailnov

https://github.com/hakavlad/le9-patch/blob/main/le9ab-5.10.patch

Предлагаю такой вариант. Алгоритм незначительно отличается от последнего pf. Предлагается другой вариант документации и безопасные дефолты.

Думаю такое именование ближе к принятому. Сначала идет название резервируемой величины, в конце - единицы измерения. Примеры:

  • dirty_bytes
  • min_free_kbytes
  • overcommit_kbytes
  • user_reserve_kbytes

К тому же термин unevictable кажется не вполне подходящим, да и эти страницы не будут учитываться в графе Unecvictable в /proc/meminfo.

Имена вводятся такие:

CONFIG_ACTIVE_FILE_RESERVE
CONFIG_ACTIVE_FILE_RESERVE_HARD_KBYTES
CONFIG_ACTIVE_FILE_RESERVE_SOFT_KBYTES

vm.active_file_reserve_hard_kbytes=0
vm.active_file_reserve_soft_kbytes=200000
hakavlad ★★★
()
Ответ на: комментарий от hakavlad

@post-factum @mikhailnov

в новом le9 эффективность мягкой защиты зависит от swappiness. При снижении swappiness защита быстро деградирует, со swappiness=10 под стрессами fps в supertuxkart падает до 1. Со swappiness=100 защита отлично работает.

hakavlad ★★★
()
Ответ на: комментарий от hakavlad

@post-factum @mikhailnov

Еще тест:

timeout 180 stress -m 32 --vm-bytes 1G C le9ab:

=================================
Peak values:  avg10  avg60 avg300
-----------  ------ ------ ------
some cpu      78.75  76.24  48.36
-----------  ------ ------ ------
some io        5.03   2.18   1.84
full io        0.00   0.04   0.88
-----------  ------ ------ ------
some memory   89.63  85.36  52.59
full memory   16.51  15.66   9.99

без защиты:

=================================
Peak values:  avg10  avg60 avg300
-----------  ------ ------ ------
some cpu      78.66  72.89  56.66
-----------  ------ ------ ------
some io       63.32  45.06  23.77
full io       38.03  11.79   3.12
-----------  ------ ------ ------
some memory   94.44  88.24  65.82
full memory   16.81  15.65  12.03

swappiness=100, memtotal=10G, swap on zram 48G.

Запуск стресса при просмотре ютуба. C le9ab дефолтным практически без лагов, и давление io близко к нулю.

hakavlad ★★★
()
Ответ на: комментарий от post-factum

Не представляю чтобы было иначе

Можно 200 ставить, если устройство подкачки быстрее системного диска.

hakavlad ★★★
()
Ответ на: комментарий от mikhailnov

psi2log из пакета nohang. v0.2.0 кстати позавчера вышел.

Пиковые значения за время работы печатаются на выходе после получения сигнала.

Запускаем скрипт, выполняем стрессы, выключаем psi2log, на выходе имеем таблицу.

https://github.com/hakavlad/nohang/blob/master/docs/psi2log.manpage.md

hakavlad ★★★
()
Ответ на: комментарий от mikhailnov

https://github.com/hakavlad/le9-patch/tree/main/mem2log

Скрипт для логирования Active(file) и друзей.

Выживает под стрессами вследствие mlockall (пожет понадобиться запуск с sudo), имеет настраиваемую интенсивность мониторинга и может логировать в файл с отметками времени.

hakavlad ★★★
()

@post-factum @mikhailnov

Давление при сборке ядра 5.7 с -j512. 10 гиг памяти, большой своп на zram, мягкое резервирование 250000, юзерспейсный киллер. Браузер замёрз, сильные лаги гуя, но управление сохранилось.

$ psi2log
Starting psi2log, target: SYSTEM_WIDE, mode: 1, interval: 2 sec, log file is not set, suppress output: False
PSI source dir: /proc/pressure/, source files: cpu, io, memory
All memory locked with MCL_CURRENT | MCL_FUTURE | MCL_ONFAULT
==================================================================================================================
        cpu          ||                     io                      ||                   memory
==================== || =========================================== || ===========================================
        some         ||         some         |         full         ||         some         |         full
-------------------- || -------------------- | -------------------- || -------------------- | --------------------
 avg10  avg60 avg300 ||  avg10  avg60 avg300 |  avg10  avg60 avg300 ||  avg10  avg60 avg300 |  avg10  avg60 avg300
------ ------ ------ || ------ ------ ------ | ------ ------ ------ || ------ ------ ------ | ------ ------ ------
 94.77  93.50  88.12 ||  45.75  64.16  58.04 |   0.00   0.00   0.31 ||  98.66  97.97  91.56 |   5.62   5.97   5.65
 94.81  93.55  88.17 ||  50.69  64.45  58.14 |   0.00   0.00   0.30 ||  98.54  97.97  91.61 |   5.68   5.97   5.65
 95.21  93.67  88.23 ||  54.91  64.76  58.25 |   0.00   0.00   0.30 ||  98.62  98.01  91.66 |   5.56   5.94   5.65
 95.17  93.71  88.27 ||  49.31  63.43  58.02 |   0.00   0.00   0.30 ||  98.51  98.00  91.70 |   5.82   5.98   5.66
 95.68  93.85  88.34 ||  44.54  62.11  57.78 |   0.00   0.00   0.30 ||  98.60  98.04  91.75 |   5.67   5.94   5.65
 95.74  93.92  88.39 ||  40.46  60.79  57.53 |   0.00   0.00   0.29 ||  98.67  98.07  91.80 |   5.55   5.91   5.65
 95.60  93.96  88.44 ||  43.81  60.74  57.54 |   0.00   0.00   0.29 ||  98.73  98.10  91.85 |   5.63   5.92   5.65
 95.31  93.96  88.48 ||  43.12  60.06  57.42 |   0.00   0.00   0.29 ||  98.41  98.06  91.89 |   6.06   5.98   5.67
 94.53  93.86  88.50 ||  47.45  60.28  57.49 |   0.00   0.00   0.29 ||  97.98  98.00  91.92 |   6.59   6.08   5.69
 94.25  93.83  88.53 ||  52.98  60.86  57.63 |   0.00   0.00   0.28 ||  98.16  98.03  91.96 |   6.66   6.11   5.70
 94.39  93.87  88.57 ||  51.35  60.31  57.54 |   0.00   0.00   0.28 ||  98.13  98.03  92.01 |   6.36   6.08   5.69
 94.68  93.94  88.62 ||  47.30  59.29  57.34 |   0.00   0.00   0.28 ||  98.29  98.06  92.05 |   6.48   6.11   5.70
 94.92  94.01  88.67 ||  46.70  58.79  57.25 |   0.00   0.00   0.28 ||  98.42  98.09  92.10 |   6.21   6.07   5.70
 94.75  94.01  88.71 ||  48.93  58.79  57.26 |   0.00   0.00   0.28 ||  98.34  98.09  92.14 |   6.35   6.10   5.71
 93.89  93.88  88.72 ||  50.21  58.70  57.25 |   0.00   0.00   0.27 ||  97.73  97.98  92.16 |   6.83   6.20   5.73
 91.01  93.36  88.64 ||  56.15  59.50  57.43 |   0.00   0.00   0.27 ||  96.33  97.72  92.15 |   7.40   6.32   5.76
 91.91  93.44  88.69 ||  57.57  59.64  57.47 |   0.00   0.00   0.27 ||  96.81  97.76  92.19 |   6.97   6.28   5.75
 92.11  93.43  88.72 ||  54.02  58.93  57.34 |   0.00   0.00   0.27 ||  97.21  97.81  92.24 |   6.79   6.27   5.76
 92.63  93.48  88.77 ||  57.46  59.40  57.45 |   0.00   0.00   0.27 ||  97.53  97.84  92.29 |   6.47   6.23   5.75
 93.06  93.53  88.81 ||  57.74  59.38  57.46 |   0.00   0.00   0.26 ||  97.80  97.88  92.33 |   6.38   6.22   5.75
 93.05  93.51  88.84 ||  51.08  58.13  57.21 |   0.00   0.00   0.26 ||  98.02  97.92  92.38 |   6.31   6.21   5.76
 93.22  93.53  88.87 ||  53.06  58.25  57.24 |   0.00   0.00   0.26 ||  98.19  97.95  92.42 |   6.43   6.24   5.76
 93.36  93.54  88.91 ||  55.40  58.51  57.30 |   0.00   0.00   0.26 ||  98.34  97.99  92.47 |   6.35   6.23   5.77
 93.11  93.49  88.93 ||  53.52  58.06  57.22 |   0.00   0.00   0.26 ||  98.28  97.99  92.51 |   6.47   6.25   5.77
 93.45  93.54  88.97 ||  58.86  58.88  57.39 |   0.00   0.00   0.25 ||  98.41  98.02  92.55 |   6.38   6.24   5.78
^C
=================================
Peak values:  avg10  avg60 avg300
-----------  ------ ------ ------
some cpu      95.74  94.01  88.97
-----------  ------ ------ ------
some io       58.86  64.76  58.25
full io        0.00   0.00   0.31
-----------  ------ ------ ------
some memory   98.73  98.10  92.55
full memory    7.40   6.32   5.78
hakavlad ★★★
()
Ответ на: комментарий от post-factum

А если ручки выставить

Ну где же ручки, 
Ну где же ваши ручки, 
Давай, поднимем ручки. 
И будем танцевать!

Владимир 123

anonymous
()

Уже есть патч для драйверов старых карточек Nvidia - 340 и 390?

vvn_black ★★★★★
()

5 минут сборки (по таймауту) Linux 5.7 с -j512 с резервом:

=================================
Peak values:  avg10  avg60 avg300
-----------  ------ ------ ------
some cpu      95.91  91.50  74.25
-----------  ------ ------ ------
some io       82.01  47.74  41.43
full io       56.44  19.68   6.86
-----------  ------ ------ ------
some memory   98.75  95.15  73.49
full memory   11.77   9.05   6.21

Без резерва:

=================================
Peak values:  avg10  avg60 avg300
-----------  ------ ------ ------
some cpu      90.44  81.66  62.43
-----------  ------ ------ ------
some io       98.87  95.75  67.33 // some io улетает ввысь
full io       56.69  20.38   7.06
-----------  ------ ------ ------
some memory   98.99  97.37  72.42
full memory   38.45  24.44  12.18 // full memory также значительно выше

Без резерва замерзание гуя при наполнении свопа на 7.5 гиг. С резервом гуй жив, можно мониторить своп на уровне 20 гиг.

Какие еще вам нужны доказательства?

hakavlad ★★★
()
Ответ на: комментарий от hakavlad

замерзание гуя

Да, я недавно в прорубь окунулся - тоже гуй отморозил. Восстановлению не подлежит, увы :(

Владимир

anonymous
()

make -j512, без защиты типичная картина с полной заморозкой, Active File на уровне 10М:

MA 105.4, BU 2.8, CA 30.5, AA 2321.7, IA 992.9, AF 9.2, IF 8.7, SF 28800.8, SU 20139.5, SH 8.4, SR 114.3
MA 155.4, BU 2.4, CA 32.2, AA 2110.6, IA 1048.6, AF 10.3, IF 9.7, SF 28464.5, SU 20475.8, SH 8.3, SR 117.1
MA 111.0, BU 2.9, CA 33.2, AA 2003.0, IA 1234.3, AF 11.2, IF 10.3, SF 28536.4, SU 20403.9, SH 8.3, SR 118.5
MA 39.6, BU 2.9, CA 34.2, AA 1998.1, IA 1441.2, AF 11.3, IF 10.9, SF 28814.5, SU 20125.9, SH 8.3, SR 119.9
MA 59.4, BU 3.3, CA 33.6, AA 1995.9, IA 1357.2, AF 11.3, IF 10.5, SF 28582.9, SU 20357.4, SH 8.3, SR 122.0
MA 90.2, BU 3.4, CA 33.1, AA 2071.5, IA 1152.1, AF 11.3, IF 10.8, SF 28271.5, SU 20668.8, SH 8.3, SR 123.6
MA 89.4, BU 3.3, CA 35.7, AA 2090.8, IA 1158.6, AF 12.0, IF 12.3, SF 28287.3, SU 20653.0, SH 8.3, SR 124.3

С неограниченной мягкой защитой

echo 0 > /proc/sys/vm/active_file_reserve_hard_kbytes
echo 200000000 > /proc/sys/vm/active_file_reserve_soft_kbytes
echo 32 > /proc/sys/vm/active_file_reserve_soft_max_scan

Музыка жива и гуй тем более, AF стабилизируется на уровне 340М:

MA 353.2, BU 119.2, CA 307.7, AA 2251.6, IA 888.0, AF 339.6, IF 4.4, SF 30035.5, SU 18904.8, SH 76.7, SR 128.2
MA 353.9, BU 119.2, CA 286.8, AA 2240.9, IA 870.8, AF 342.0, IF 5.1, SF 29900.9, SU 19039.4, SH 53.2, SR 127.6
MA 351.4, BU 119.2, CA 286.4, AA 2246.6, IA 834.5, AF 339.8, IF 3.6, SF 29704.7, SU 19235.6, SH 55.7, SR 128.3
MA 316.8, BU 120.8, CA 300.7, AA 2258.3, IA 833.4, AF 339.9, IF 5.7, SF 29672.1, SU 19268.2, SH 68.8, SR 128.8
MA 297.6, BU 120.7, CA 314.3, AA 2162.8, IA 979.1, AF 341.5, IF 5.9, SF 29690.4, SU 19250.0, SH 81.3, SR 129.4

mem2log - https://github.com/hakavlad/le9-patch/tree/main/mem2log

@post-factum @mikhailnov

hakavlad ★★★
()
Последнее исправление: hakavlad (всего исправлений: 1)

@post-factum @mikhailnov

Все очень плохо. Debian 10, 5.10.8+le9, жесткий 250000, после первого же оом:

Jan 18 10:26:06 user-pc kernel: [   1388]  1000  1388  1641501  1640587 13197312        0             0 tail
Jan 18 10:26:06 user-pc kernel: oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/user.slice/user-100
Jan 18 10:26:06 user-pc kernel: Out of memory: Killed process 1388 (tail) total-vm:6566004kB, anon-rss:6560640kB, file-rss:1708kB, shmem-rss:0kB, UID:
Jan 18 10:26:06 user-pc kernel: Xorg: page allocation failure: order:0, mode:0x104cd2(GFP_HIGHUSER|__GFP_RETRY_MAYFAIL|__GFP_RECLAIMABLE), nodemask=(n
Jan 18 10:26:06 user-pc kernel: CPU: 1 PID: 618 Comm: Xorg Tainted: G        W   E     5.10.8 #1
Jan 18 10:26:06 user-pc kernel: Hardware name: ASUSTeK COMPUTER INC. X550LN/X550LN, BIOS X550LN.301 04/14/2014
Jan 18 10:26:06 user-pc kernel: Call Trace:
Jan 18 10:26:06 user-pc kernel:  dump_stack+0x6d/0x88
...
Jan 18 10:26:06 user-pc kernel: 56232 pages reserved
Jan 18 10:26:06 user-pc kernel: 0 pages hwpoisoned
Jan 18 10:26:06 user-pc notification-ar[985]: notification-area-applet: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.
Jan 18 10:26:06 user-pc at-spi-bus-launcher[876]: XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
Jan 18 10:26:06 user-pc at-spi-bus-launcher[876]:       after 617 requests (617 known processed) with 0 events remaining.
Jan 18 10:26:06 user-pc clock-applet[979]: clock-applet: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.
Jan 18 10:26:06 user-pc wnck-applet[973]: wnck-applet: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.
Jan 18 10:26:06 user-pc pulseaudio[932]: XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
Jan 18 10:26:06 user-pc pulseaudio[932]:       after 19 requests (19 known processed) with 0 events remaining.
Jan 18 10:26:06 user-pc mate-multiload-[977]: mate-multiload-applet: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.
Jan 18 10:26:06 user-pc lightdm[770]: pam_unix(lightdm:session): session closed for user user
Jan 18 10:26:06 user-pc mate-system-mon[1069]: mate-system-monitor: Fatal IO error 11 (Resource temporarily unavailable) on X server :0.
Jan 18 10:26:06 user-pc polkitd(authority=local)[529]: Unregistered Authentication Agent for unix-session:3 (system bus name :1.32, object path /org/m
Jan 18 10:26:06 user-pc systemd-logind[498]: Session 3 logged out. Waiting for processes to exit.
Jan 18 10:26:07 user-pc systemd[775]: pulseaudio.service: Main process exited, code=exited, status=1/FAILURE
Jan 18 10:26:07 user-pc systemd[775]: pulseaudio.service: Failed with result 'exit-code'.
hakavlad ★★★
()

@post-factum @mikhailnov

Итак, issue: https://github.com/hakavlad/le9-patch/issues/5

Это известный вам fatal IO error 11.

Проблема в гем шринкере драйвера i915.

Итак, у нас есть i915_gem_shrinker.c https://github.com/torvalds/linux/blob/master/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c и документация https://www.kernel.org/doc/html/latest/gpu/i915.html#buffer-object-memory-shrinking.

В выключенным шринкером Fatal io error не происходит.

https://i.ibb.co/vmYgvbH/2021-01-26-00-46-59.png

Все идеально.

hakavlad ★★★
()
Последнее исправление: hakavlad (всего исправлений: 1)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
index dc8f052a0..f175a8684 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_shrinker.c
@@ -98,6 +98,7 @@ i915_gem_shrink(struct drm_i915_private *i915,
                unsigned long *nr_scanned,
                unsigned int shrink)
 {
+       return 0;
        const struct {
                struct list_head *list;
                unsigned int bit;

@post-factum @mikhailnov

Вот лекарство от Fatal IO error 11 (а иногда и от unable to handle page fault и kernel: Oops). Крайне рекомендуется к использованию при жестком резервировании Active(file).

И вот видео с опытом Ташкинова: ни лагов, ни багов: https://www.youtube.com/watch?v=iU3ikgNgp3M.

hakavlad ★★★
()
Ответ на: комментарий от hakavlad

ты тут на заглушку заменяешь какую-то функцию в драйвере, которая должна что-то там сокращать. какая-то херня, а не лекарство

anonymous
()
Ответ на: комментарий от intelfx

В 2010 гугл предлагал то же самое. Аналогичный патч используется в хромос с 2010.

hakavlad ★★★
()
Ответ на: комментарий от hakavlad

я и так понял, что выключает. ещё понятно, что ты сам не в курсе что и с каими последствиями она выключает

anonymous
()
Ответ на: комментарий от post-factum

+ return 0;

Лол.

Что-то не так? Считаешь это плохой идеей? Это простейшая реализация выключения шринкера, которая надежно работает.

Ташкинова

Лол²

Я просто записал видео с опытом Ташкинова, в котором у него все зависало https://www.opennet.ru/opennews/art.shtml?num=51231 - с le9 проблема исчерпана.

hakavlad ★★★
()
Ответ на: комментарий от hakavlad

Нет. Мокрописьки от личностей, не умеющих в инженерный и коллаборационный процесс free software, не нужны. Карго-культисты, которые носятся с этими мокрописьками как с писаной торбой «КОКОКО LE9 PATCH ВСЕ НАКАТЫВАЕМ LE9 PATCH КОКОКО», не нужны вдвойне.

Осмысленное название у этого «le9 patch» есть? Автор? Мейнтейнер?

Если этот патч реализует техническое исправление, то почему он не принят? Если он реализует некий содержательный алгоритм, то где описание этого алгоритма, abstract, мотивация, обоснование корректности?

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 7)
Ответ на: комментарий от hakavlad

Что-то не так?

Да. Нельзя просто взять и выключить кусок кода, не понимая, зачем он там.

Ташкинова

Я, конечно, извиняюсь, но этот кадр довольно известен… гм… нетрадиционным… багрепортингом.

post-factum ★★★★★
()
Ответ на: комментарий от post-factum

Нельзя просто взять и выключить кусок кода, не понимая, зачем он там.

Драйвер использует системную память для нужд своего GEM (graphics execution manager). При нехватке памяти shrinker освобождает эту память:

Shrinking is used to make main memory available.

https://www.kernel.org/doc/html/latest/gpu/i915.html#buffer-object-memory-shrinking

Практика показала, что выключение шринкера решает проблему возникновения Fatal IO error 11, kernel: BUG: unable to handle page fault for address и kernel: Oops, при этом практически не создает дополнительных проблем. Даже в тестах с нехваткой памяти при интенсивном использовании vram в нагрузках с блендером проблем не выявлено (почти - бывали иногда сегфолты в Web Content при нагрузке памяти блендерами при свопе на zram, когда zram disksize > MemTotal - таким образом, о убычного юзера проблем не будет).

А вот использовать предлагать юзерам le9, даже не предупредив их об опасностях - это действительно нельзя.

Хорошим тоном было бы либо предупредить в ридми pf-kernel о рисках при использовании встроек intel, либо таки выключить шринкер, исправив проблему (и тоже предупредив юзеров об этом).

Вот пример подобной хорошей практики: мейнтейнер ядра с le9 предупредил о рисках:

Note: currently le9 could have issues on Intel graphics. No information about AMD cards at this moment. But 100% works withoyt issue on Nvidia cards.

https://copr.fedorainfracloud.org/coprs/atim/kernel-futex/

(следующая сборка должна выйти без шринкера)

Еще одно указание на связь проблемы с i915: есть ноутбук с убунту, на нем prelockd лочит либы. С драйвером nvidia Fatal IO error не возникает. При переключении на Intel в настройках nvidia драйвера Fatal IO error воспрпоизводится легко.

Идею с выключением шринкера мне подбросила старая рассылка:

Do you see this with Intel graphics? I think these drivers still use the GEM shrinker, which effectively bypasses most kernel memory management heuristics.

https://lore.kernel.org/lkml/874l2u3yre.fsf@mid.deneb.enyo.de/

hakavlad ★★★
()
Ответ на: комментарий от intelfx

Мокрописьки от личностей, не умеющих в инженерный и коллаборационный процесс free software, не нужны. Карго-культисты, которые носятся с этими мокрописьками как с писаной торбой «КОКОКО LE9 PATCH ВСЕ НАКАТЫВАЕМ LE9 PATCH КОКОКО», не нужны вдвойне.

Все так.

Осмысленное название у этого «le9 patch» есть?

Можешь называть его 00000000001-PATCH-Reserve-active-file-pages, если le9 не нравится.

Автор? Мейнтейнер?

Оригинальный автор (Marcus Linsner aka constantoverride aka howaboutsynergy) пожелал остаться неизвестным и выпустил патчи в публичное достояние, см https://github.com/hakavlad/le9-patch#origin.

Я раскопал архивы и восстановил патчи в репе на гитхабе https://github.com/hakavlad/le9-patch и продолжаю их дальнейшее развитие.

Если этот патч реализует техническое исправление, то почему он не принят?

Это уже вопрос к разрабам ядра, а не ко мне.

Первая попытка толкнуть в апстрим принадлежала гуглу, читай тред «RFC: vmscan: add min_filelist_kbytes sysctl for protecting the working set (2010)» - https://lore.kernel.org/patchwork/patch/222042/

А второй попытки и не было. Оригинальный автор le9 не пожелал заниматься толканием в апстрим:

Why don’t you try sending it to linux-mm

multiple reasons

  • this patch is just a proof of concept really, and does not meet the quality I’d accept of myself for sending it upstream (have you read that help text? lol)
  • sending patches to ML requires having read and knowing all the rules for submitting patches - yuck (ie. me lazy)
  • they require real name and I don’t want/care to provide one(did it in the past tho)
  • they will want changes to the patch that I won’t like to do while still keeping my name attached to the patch (as a example from my prev. time: moving a define whose place was clearly inside a .h near its siblings(CPU stuff), into the .c right above and in the middle(actually top) of the function of the code using it, just because it was the only place this define was used)
  • lazy
  • kernel is so bugged that I learned to not care anymore

But hey if anyone else wants to send it, be my guest, but use your own name (it’s ok, you can pretend that you wrote it, you’ve my permission, or you can even modify it) I don’t care, I consider the patch in the public domain(and/or all other licenses, for ease of use).

/me out(actually I’ve decided to resume using this account(since today 03sept2019) - maybe because I’m too lazy to create yet another one everywhere, or I simply want to synergize on this one) - EDIT: nevermind, deleted everything at the end of oct. 2019, but my gists r still available on archive org tho.

https://www.phoronix.com/forums/forum/phoronix/general-discussion/1118164-yes-linux-does-bad-in-low-ram-memory-pressure-situations-on-the-desktop?p=1120024#post1120024

Я же пока занимаюсь тестированием и оптимизацией, ищу возможные баги и оптимальные дефолты. Нельзя ж просто взять и толкнуть патч в апстрим (я человек простой, даже не программист).

Если он реализует некий содержательный алгоритм, то где описание этого алгоритма

Поищи в ридми, почитай код. Кажется алгоритм предельно прост - запрет на вытеснение активных файловых страниц, если их объем меньше заданного.

мотивация

a lot of thrashing under low memory conditions - https://lore.kernel.org/patchwork/patch/222042/ - это раз. Проблема древняя, а решение элементарное. Ко всему прочему резервирование может уменьшать давление io и даже повышать производительность в I/O bound задачах при активном своппинге. Кроме того, все мы видели треды 2019 года, спровоцированные Ташкиновым - Let’s talk about the elephant in the room - the Linux kernel’s inability to gracefully handle low memory pressure

См также When DMA is disabled system freeze on high memory usage (since 2007) https://bugs.launchpad.net/ubuntu/+source/linux/+bug/159356 - жалобы продолжаются с 2007 до сих пор:

Unbelievable! I have no idea why my system with 32GB of memory is still haunted by this dumb issue. The ssh got completely unresponsive, even with a physical monitor and keyboard attached to the system, when this happens and the only solution to get back control is a hard reset. Man.. if anyone from upstream cares about this issue at least give user a prompt to kill the problematic process manually. Rendering the full system unresponsive like this is unacceptable.

hakavlad ★★★
()
Ответ на: комментарий от post-factum

Никто этот патч в здравом уме в дистрибутиве из коробки не будет поставлять

http://www.vsrx.work/article/479025696.html

Вышел Noir Linux Kernel 5.10.12 с патчем le9aa1-5.10.patch. Это ядро поставляется с японским дистрибутивом Valkyrie Linux.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.