Лінус Торвальдс залучив Claude Code до розробки патчів для Linux

Лінус Торвальдс залучив Claude Code до розробки патчів для Linux

Лінус Торвальдс використав Claude Code для патчів Linux, що мають пришвидшити окремі операції читання з кешу сторінок.

Лінус Торвальдс повідомив, що використав ШІ-асистента Claude Code під час підготовки серії патчів для ядра Linux. За його словами, за його керівництва інструмент створив код, тестові програми, матеріали для рев’ю та перший варіант опису змін.

 

Патчі для кешу сторінок

 

Як повідомляє ZDNET, зміни спрямовані на усунення проблеми конкуренції за спільну кеш-лінію в page cache Linux — механізмі, що зберігає файлові дані в пам’яті. Вона виникає, коли кілька потоків одночасно багаторазово читають невеликі обсяги даних з одного кешованого файлу та оновлюють лічильник посилань на сторінку пам’яті.

У тесті Торвальдса на ноутбуці з процесором Intel Core i7-8565U чотири ядра та вісім потоків виконували 16-байтові виклики pread() до однієї сторінки. Зафіксовані між’ядерні завантаження кеш-лінії HITM у цьому сценарії на 99,92% припадали на спільну кеш-лінію, що суттєво сповільнювало виконання операцій.

Запропонований підхід змінює порядок повторного використання пам’яті, вилученої з page cache. Замість її негайного повернення алокатору патчі відкладають повторне використання до завершення пільгового періоду механізму RCU. Це дає змогу читачеві в RCU-секції копіювати дані до буфера користувача без отримання посилання на folio.

 

Результати тестів і обмеження

 

У конкретному восьмипотоковому тесті пропускна здатність зросла приблизно з 9,9–10,4 млн до 30–33 млн читань за секунду. Кількість тактів ядра на одне читання зменшилася орієнтовно з 2950 до 725. Для однопотокового читання показник покращився з приблизно 452–454 до 408–409 тактів на операцію.

Водночас ці результати не означають триразового прискорення Linux загалом: вони стосуються конкретного навантаження з малими операціями читання на особистому ноутбуці Торвальдса. Він також зазначив, що система з більшою кількістю процесорів або кількома сокетами потенційно може отримати більший приріст, однак таких вимірювань не проводили.

У серії патчів лишається невирішеним питання звільнення пам’яті: через відкладене повторне використання сторінки можуть бути недоступними, поки ядро очікує на завершення RCU-періоду. Також новий шлях читання має регресію для сторінки користувача, яка ще не відображена в пам’яті: перед поверненням до наявної реалізації виникає додатковий невдалий виняток. Станом на 13 жовтня гілка з цими змінами не входила до основної гілки Linux 7.3-rc6.

 

Зміна ставлення до ШІ

 

Торвальдс раніше розглядав ШІ передусім як інструмент для пошуку помилок, а згодом — для супроводу коду та перевірки патчів. У жовтні він заявив, що вважає ШІ корисним інструментом за умови обережного використання в реальних і важливих проєктах. Нинішня серія патчів стала прикладом застосування Claude Code для створення коду ядра Linux, який ще потребує технічного доопрацювання перед можливим включенням до основної гілки.