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 ()

Ответ на: -=:=- от KosmiK

Со ссылкой на

https://www.spinics.net/lists/linux-xfs/msg47004.html

но вроде дальше говорится, что исправлено

https://www.spinics.net/lists/linux-xfs/msg47006.html

Плюс

The mkfs line used to create this fs was:

mkfs.xfs -m rmapbt=1,reflink=1 -d agcount=17,sunit=$((128*8)),swidth=$((384*8)) -l logdev=/dev/sde3,size=521728b -i sparse=1,maxpct=25 /dev/main/root

I_want_to_tune_my_XFS_filesystems_for_.3Csomething.3E

Premature optimization is the root of all evil. - Donald Knuth

The standard answer you will get to this question is this: use the defaults.

greenman ★★★★★ ()

Ну так что сломали-то?

А то в 5.9 вон, отломали scrollback в консоли, а я, загрузившись в кои-то веки туда по своим делам, вместо дел около часа пырился в свои настройки, пытаясь понять, что за хрень - всегда ж работало.

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

Думаю делают совсем другое. memory.min имхо это про анонимную, а не про файловую. Впрочем, я не эксперт. Но вообще я не знаю, как через сигруппы так легко добиться такого сильного эффекта. le9 дает сильный общесистемный эффект и не требует спецнастройки практически. Дефолтный для le9g порог 254М отлично работает на любом десктопе, а добавляет-то всего 7 очевидных строк, зщапрещающих отбрасывание Active(file).

Это похоже на естественное лекарство для сломанного ядерного киллера, когда разрешение на отбрасывание практически всех файловых кэшей приводит к сильной пробуксовке при нехватке памяти (которой удивлялся birdie-Ташкинов) и которой нет с патчем - вместо мигания лампочки диска и зависания вовремя приходит киллер, а при наличии свопа еще и резко может улучшаться отзывчивость при стрессах.

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

Зачем значение, возвращаемое global_node_page_state(), умножается на MAX_NR_ZONES? Ведь это глобальный счётчик для всех зон и так.

https://gitlab.com/post-factum/pf-kernel/-/commit/daf51d02979fc2ec22423362fdf21687beaee3b2

^^ есть возможность протестить?

post-factum ★★★★★ ()
Последнее исправление: post-factum (всего исправлений: 1)
Ответ на: комментарий от post-factum

global_node_page_state() возвращает число страниц. Умножением на MAX_NR_ZONES получаем KiB. Правдоподобно ли звучит? Нам же нужны KiB для сравнения с заданным значением, а не число страниц.

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

Директория после сборки - 16 гиг. Клонированные исходники одной версии - 1.1 гиг. Распакованный тарбол линукс 59 - 930М.

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

^^ есть возможность протестить?

Пока все супер, детали позже.

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

ачем значение, возвращаемое global_node_page_state(), умножается на MAX_NR_ZONES?

+	$ grep nr_active_file /proc/vmstat
+	nr_active_file 678001
+
+and multiply that with MAX_NR_ZONES (which is 4), ie. `nr_active_file * MAX_NR_ZONES`
+so 678001*4=2712004  kB
+
+MAX_NR_ZONES is 4 as per:
+`include/generated/bounds.h:10:#define MAX_NR_ZONES 4 /* __MAX_NR_ZONES */`
+and is unlikely the change in the future.

https://raw.githubusercontent.com/hakavlad/le9-patch/main/original_patches/le9h.patch

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

Не очевидно. Он выходит обычно весной.

anonymous ()
Ответ на: Ну так что сломали-то? от anonymous

Между делом, забавнее то, что с этим отламыванием выяснилось, что консоль у амуде всегда была без аппаратного ускорения. Ускоренная была только на nouveau. А разговоров-то было…

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

Пожалуйста, опиши, что изменил по сравнению с оригиналом. Исправил ли FIXME? Убрал ли умножение на MAX_NR_ZONES? Что-то еще?

Тестировал ли сам?

Похоже, что с этим https://gitlab.com/post-factum/pf-kernel/-/commit/daf51d02979fc2ec22423362fdf21687beaee3b2 все ОК.

Предлагаю изменить дефолты. Сам автор предпочитает резерв Active(file) 254M.

Патч le9i выпущен в основном лишь для тестирования резервирования Inactive(file):

Try le9i.patch if you also want Inactive(file) but it’s not necessary to mitigate the freezes.

https://web.archive.org/web/20191018023217/https://gist.github.com/howaboutsynergy/04fd9be927835b055ac15b8b64658e85

this was just for testing

https://web.archive.org/web/20191018023434/https://gist.github.com/howaboutsynergy/cbfa3cc5e8093c26c29f5d411c16e6b1

Результат такой: резервирование Inactive(file) в основном влияет негативно. С большими резервами Inactive(file) на моем железе часто было это с падением сессии:

дек 19 16:55:40 PC org.a11y.atspi.Registry[1317]: XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0"
дек 19 16:55:40 PC org.a11y.atspi.Registry[1317]:       after 49 requests (49 known processed) with 0 events remaining.
дек 19 16:55:41 PC polkitd(authority=local)[846]: Unregistered Authentication Agent for unix-session:22 (system bus name :1.109, object path /org/mate/PolicyKit1/AuthenticationAgent, locale ru_RU.UTF-8) (disconn
дек 19 16:55:41 PC unknown[3992]: notification-area-applet: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 19 16:55:41 PC lightdm[3841]: pam_unix(lightdm:session): session closed for user user
дек 19 16:55:41 PC unknown[3996]: mate-brightness-applet: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 19 16:55:42 PC sudo[4054]: pam_unix(sudo:session): session closed for user root
дек 19 16:55:41 PC unknown[4025]: mate-system-monitor: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 19 16:55:41 PC unknown[3998]: mate-sensors-applet: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 19 16:55:41 PC unknown[4015]: clock-applet: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 19 16:55:41 PC unknown[3981]: wnck-applet: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 19 16:55:41 PC unknown[3994]: mate-multiload-applet: Fatal IO error 11 (Ресурс временно недоступен) on X server :0.
дек 19 16:55:41 PC systemd-logind[751]: Removed session 22.

Посему предлагаю резерв Inactive выставить в 0 по умолчанию.

Chrome OS использует по умолчанию резерв 50М c 2010 и до сих пор:

# Protect working set in order to avoid thrashing.
# See http://crosbug.com/7561 for details.
vm.min_filelist_kbytes = 50000

https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/factory-spring-4131.B/chromeos-base/chromeos-base/files/sysctl.conf

ИМХО 50М могло быть неплохим резервом для 2010, но для 2020 это слишком мало.

Автор с XFCE использует резерв 254М. Тем более с современными гномами и кедами это не будет большим значением, когда на среднем ноутбуке памяти 4-8 гиг.

Прелагаю дефолты сделать такими: 254M Active, 0 Inactive. Это хорошо работает и при нормальных нагрузках дает только плюсы.

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

Да, ты таки прав. Проблема в том, что умножение на MAX_NR_ZONES — это довольно тупо. Да, так совпало, что оно 4. Но должно быть вот так:

#define K(x) ((x) << (PAGE_SHIFT-10))

Исправлю и кину новый патч.

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

Более того, ваш последний патч резервировал больше заявленного. Оригинальный патч резервирует без ошибок, фактические значения при стрессах получаются чуть ниже указанных.

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

FIXME убрал, пофиксил то, как считаются кибибайты, убрал лишний текст, переименовал опции в конфиге.

Смотри и пробуй, пожалуйста, вот новая попытка: https://gitlab.com/post-factum/pf-kernel/-/commit/4b2beea775752f77631d372ad41ce5438d3c7712

post-factum ★★★★★ ()

они тормоза с io то уже пофиксили?

я думал,это грабли бтрфс.
а на днях открывал архив гуглодиска, и при чтении оного система начала тупить даже на ext4.
конфиг скромный,
adata600 / 32 Gb RAM / Ryzen 3500

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

Тюнингуй параметры ядра. Уменьшай кеш записи. Если ссд, можешь попробовать шедуллер kyber. А в чем ты открываешь архив? В ark? В нем есть глюк. Если попробовать открыть большой файл, он выжрет всю память и зависнет. Чтобы линукс не зависал при исчерпании памяти, настрой vm.overcommit. А вместо арка используй энгрампу и проекта MATE.

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

Все супер и работает как должно.

Запустил 2 цикла while true; do tail /dev/zero; done, затем открывал приложения. Active(file) вырос как раз до 256М.

Лог мониторинга памяти: https://pastebin.com/raw/pHTkgCKe

Скрипт мониторинга: http://okturing.com/src/10003/body

Скрин из ящика: https://i.ibb.co/hCfqXqZ/Virtual-Box-deb9-2-20-12-2020-21-23-24.png

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

Аффтар жжот! Это твой патч? А когда он будет в апстриме?

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

extern unsigned int sysctl_unevictable_inactivefile_kbytes;

unsigned long sysctl_unevictable_inactivefile_kbytes __read_mostly =

Почему в одном месте unsigned int, а в другом unsigned long? Разве не везде unsigned long должен быть?

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

Блоб работает с этим ядром. Пинай убогих маняйтейнеров своего дистрибутива.

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