Перейти до вмісту
desing SEO · Веброзробка · Технології
Лінус Торвальдс Claude Code

Лінус Торвальдс залучив Claude Code до серйозної оптимізації Linux

Лінус Торвальдс працює над оптимізацією ядра Linux за допомогою Claude Code. У його багатопотоковому тесті кількість коротких читань із файлового кешу зросла приблизно втричі. Але це експериментальні патчі для конкретного вузького місця: до основної гілки вони ще не потрапили.

У репозиторії творця Linux з’явилася гілка noref-filemap-read-with-llm. На неї звернув увагу Майкл Ларабель із Phoronix, поки очікував випуску Linux 7.3-rc7. За його спостереженням, окремі робочі гілки в головному репозиторії Торвальдса з’являються нечасто.

У описі експериментальної серії патчів Торвальдс прямо вказав, що Claude Code під його керівництвом допомагав писати код і тестові програми, перевіряти зміни та готувати першу версію супровідного тексту. Вимірювання виконувалися на його комп’ютері. Тобто участь AI тут не зводиться до підказки в редакторі, але й самостійною розробкою без людини її назвати не можна.

Проблема виникає, коли багато потоків читають невеликі фрагменти одного файла. Дані вже перебувають в оперативній пам’яті, проте кожне читання змінює лічильник посилань на folio — структуру, якою ядро описує одну або кілька сторінок пам’яті. Потоки конкурують за оновлення того самого лічильника, і додавання ядер перестає давати очікуваний приріст.

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

Торвальдс тестував зміни на ноутбуці з Intel Core i7-8565U: чотири ядра, вісім потоків, файлова система ext4. Програма багаторазово читала по 16 байт із початку одного файла розміром в одну сторінку, який уже був у кеші.

СценарійДо змін, млн читань/сІз патчами, млн читань/с
Один потік7,9–8,18,8–8,9
Чотири потоки, по одному на ядро8,9–11,625–26
Вісім потоків9,9–10,430–33

У цих цифр є важливий контекст. Частота ноутбука знижувалася через нагрівання, тому Торвальдс радить порівнювати насамперед витрати процесора на одне читання. Тести також виконувалися з вимкненими захисними механізмами проти процесорних уразливостей і CONFIG_HARDENED_USERCOPY. Це результати одного комп’ютера, а не прогноз прискорення для будь-якої системи.

Формулювання «Linux став утричі швидшим» тут було б помилкою. Найбільший приріст отримано при одночасному читанні коротких фрагментів одного кешованого файла. Він не означає такого самого прискорення запуску програм, копіювання даних або роботи ОС загалом.

Серія містить вісім патчів на основі Linux 7.3-rc6 із додатковими виправленнями. Відкладене звільнення пам’яті ще створює проблеми: у стрес-тесті з 16 процесами пік обсягу сторінок, що чекали на звільнення, сягав 870 МіБ. Це не загальне споживання пам’яті системою.

Торвальдс також описав регресію CMA — механізму виділення фізично неперервних ділянок пам’яті. Серед неперевірених конфігурацій залишаються KASAN, 32-бітні системи та інші режими роботи ядра. Сам список відкритих питань показує, скільки перевірок лишається після успішного мікротесту.

На Desing уже розбирався інший приклад роботи з AI через задачі GitHub: агент допомагає готувати зміни, а вимоги до результату задає людина. У випадку ядра Linux ці зміни ще мають пройти подальшу перевірку. Включення оптимізації до Linux 7.4 наразі не підтверджене.

Добавить комментарий