Розробник Лінус Торвальдс залучив ШІ до створення патчів ядра Linux
Лінус Торвальдс використав Claude Code для підготовки патчів ядра Linux, що прискорили окремий сценарій читання даних.
Розробник Лінус Торвальдс повідомив, що використав ШІ-асистента Claude Code для підготовки серії патчів до ядра Linux. За його словами, за його керівництва інструмент створив код, тестові програми, матеріали для перегляду змін і першу версію пояснювального тексту. Про це повідомляє ZDNET.
Зміни спрямовані на усунення проблеми зі сповільненням кешу сторінок Linux під час одночасного читання невеликих обсягів даних кількома потоками. У такому сценарії ядро багаторазово оновлює спільний лічильник посилань на сторінку пам’яті, через що процесорні ядра конкурують за одну лінію кешу.
Результати тестування
Торвальдс перевіряв зміни на ноутбуці з процесором Intel Core i7-8565U, використовуючи вісім потоків, які виконували 16-байтові виклики pread() до тієї самої сторінки. За наведеними даними, така спільна лінія кешу формувала 99,92% між’ядерного навантаження, виміряного показником HITM.
Запропонований підхід відкладає повторне використання пам’яті, вилученої з кешу сторінок, до завершення пільгового періоду RCU. Це дає змогу читачеві, захищеному RCU-секцією, копіювати дані в буфер користувача без отримання посилання на folio — структуру, що представляє сторінку пам’яті.
У конкретному восьмипотоковому тесті пропускна здатність зросла приблизно з 9,9–10,4 млн до 30–33 млн операцій читання за секунду. Кількість тактів ядра на одне читання зменшилася орієнтовно з 2950 до 725. В однопотоковому режимі показник поліпшився скромніше — приблизно з 452–454 до 408–409 тактів на читання.
Невирішені компроміси
Торвальдс наголосив, що результати стосуються певного навантаження, а не загального прискорення Linux утричі. Він також зазначив, що комп’ютери з більшою кількістю процесорів або кількома процесорними роз’ємами потенційно можуть отримати більший приріст, однак таких вимірювань не проводили.
Водночас затримка повторного використання пам’яті означає, що сторінки можуть лишатися недоступними, доки ядро очікує завершення періоду RCU. Торвальдс назвав цей аспект серії змін найменш вирішеним. Новий шлях читання також має регресію для сторінки користувача, яку ще не відображено в пам’яті: перед поверненням до чинної реалізації виникає додатковий невдалий виняток.
Станом на 13 жовтня гілка з цими патчами ще не входила до основної гілки Linux 7.3-rc6. Чи буде її інтегровано до ядра та коли саме, наразі не визначено.