Ядро Linux 6.18: Новини та ключові особливості

Linus Torvalds щойно оголосив про офіційний реліз нового ядра Linux 6.18.

Ключові особливості Linux 6.18

На високому рівні, ядро Linux 6.18 представляє новий варіант шифрування на базі PSP для TCP-з’єднань, пришвидшену виділення пам’яті та обміну, значні покращення на прийомі UDP та новий цільовий пристрій картки з постійним кешем. Також доступні простори імен, які можна керувати через дескриптори файлів, підтримка Accurate ECN у TCP та підписані програми BPF, разом з безліччю менших змін у ядрі та драйверах.

Однією з основних змін є введення “шарів” у аллокаторі SLUB. Простими словами, ядро тепер зберігає кеші невеликих об’єктів пам’яті для кожного процесора. Це дозволяє виконувати більшість виділення та звільнення локально. Таким чином, зменшується конкуренція в гарячих шляхах і пришвидшується як виділення, так і звільнення пам’яті.

Покращення продуктивності обміну є ще однією важливою новиною. Ядро Linux 6.18 приносить першу фазу роботи над “таблицею обміну”, що вводить нову абстракцію, яка використовується як потік для кешу обміну. Метою є зробити пошуки і управління обміном більш ефективними, особливо в умовах обмеженої пам’яті.

Бенчмарки, надані в примітках до злиття, показують приріст пропускної здатності і запитів на секунду на 5–20% для представницьких навантажень. Спостерігається також покращення поведінки під навантаженням для виділення великих сторінок.

На стороні зберігання, новий цільовий пристрій dm-pcache дозволяє використовувати постійну пам’ять як швидкий кеш перед повільними блочними пристроями. Це надає дизайнерам систем спосіб працювати з постійною пам’яттю на рівні ядра, без необхідності в кастомному коді для користувацького простору.

У той же час, сервер NFS отримує можливість повністю вимкнути кешування I/O. Це може здатися контрінтуїтивним, але для великих серверів або дуже малих хмарних інстанцій пропуск кешування на стороні сервера може покращити масштабованість.

Управління процесами та просторами імен отримує помітне покращення зручності використання. Ядро підтримує pidfds, дескриптори файлів для процесів, з версії Linux 5.1. Вони довели свою корисність для надійного управління процесами.

Ядро Linux 6.18 поширює ту ж ідею на простори імен: користувацький простір тепер може кодувати і декодувати ідентифікатори просторів імен, використовуючи вже існуючі API name_to_handle_at() та open_by_handle_at(). Це робить можливим посилання на простори імен послідовно протягом життєвого циклу системи.

Мережа отримує кілька суттєвих змін з новим випуском, який додає початкову підтримку Accurate Explicit Congestion Notification. Це розширює класичну ECN, надаючи більш детальний зворотний зв’язок щодо кількості маркувань затримки, які були помічені за кожен RTT.

На стороні UDP шлях прийому був перероблений для зменшення конкуренції та використання замків, що усвідомлюють NUMA, а також для покращення структури даних. Тестування, наведені у changelog, показують приблизно 50% покращення продуктивності UDP RX.

Крім цього, розмір за замовчуванням буфера прийому сокета також підвищено до 4 МБ, а раніше виконана робота з прямим внутрішнім обміном буферів (dibs) об’єднано, що додатково покращує масштабованість для мереж з високим обсягом.

Безпека та транспортування шифрування зміцнено з підтримкою PSP-шифрованих TCP-з’єднань. PSP – це протокол, розроблений у Google. Він займає середню позицію між IPsec та TLS.

Підсистема BPF отримує можливість завантажувати криптографічно підписані програми BPF. Основна зміна полягає в тому, що ядро може перевіряти підписи програм у момент завантаження.

На фронті віртуалізації, ядро Linux 6.18 представляє драйвер virtio SPI, який дозволяє гіпервізорам безпосередньо надавати пристрої SPI віртуальним машинам.

Файлові системи та блоковий рівень демонструють комбінацію нових функцій і очищення. Новий цільовий пристрій dm-pcache також відповідає цій частині, забезпечуючи постійне кешування перед блочними пристроями.

Нарешті, що стосується підтримки обладнання, реліз приносить нові або поліпшені драйвери для широкого спектру GPU, дисплейних містків і панелей, вбудованих SoC, мережевих карток, блоків живлення та регуляторів, датчиків промислового I/O, контролерів зберігання, USB PHY та повторювачів, аудіопристроїв та контролерів введення.

Для тих, хто прагне самостійно скомпілювати ядро Linux 6.18, воно тепер доступне для завантаження на kernel.org. Як завжди, користувачі дистрибутивів із безперервними оновленнями отримають нове ядро першими, з очікуванням, що оновлення буде доступно в їх репозиторіях протягом наступних тижнів.