AI в действии: от скепсиса к инструменту
Линус Торвальдс опубликовал серию из восьми патчей для ядра Linux, написанных с помощью LLM-ассистента Claude Code от Anthropic. В описании к коммиту в Git он прямо указал: «Код, тестовые программы, обзор и черновик текста были сделаны с помощью LLM-ассистента под моим руководством». Это знаменует окончательный переход создателя Linux от осторожного интереса к практическому использованию ИИ для написания критически важного системного кода.
Суть проблемы: узкое место в кэше страниц
Патчи направлены на устранение проблемы конкуренции за общую кэш-линию (cache line contention) при многопоточном чтении небольших фрагментов данных. Когда несколько потоков обращаются к одному файлу, они постоянно обновляют счетчики ссылок на folio (структуру кэша страниц). Эти атомарные записи заставляют ядра процессора конкурировать за одну кэш-линию, что приводит к резкому падению производительности. Проблема известна с 2024 года, но предыдущие попытки её решения не увенчались успехом.
Результаты бенчмарков
Тестирование проводилось на ноутбуке Intel Core i7-8565U (4 ядра, 8 потоков) с использованием 8 потоков, выполняющих 16-байтные вызовы pread() к одной странице. Решение заключается в отложенном возврате памяти в аллокатор (через RCU-период), что позволяет читателям копировать данные без захвата ссылок. Результаты на тестовой машине впечатляющие:
| Метрика | До исправления | После исправления | Прирост |
|---|---|---|---|
| Пропускная способность (8 потоков) | 9.9–10.4 млн чт/с | 30–33 млн чт/с | ~3x |
| Циклы ядра на чтение (8 потоков) | ~2,950 | ~725 | ~4x ускорение |
| Циклы ядра на чтение (1 поток) | 452–454 | 408–409 | ~10% ускорение |
Компромиссы и статус слияния
Несмотря на успех, решение не является идеальным. Торвальдс отметил, что отложенная рекуперация памяти — это «наименее решенная часть серии», так как страницы могут оставаться недоступными во время ожидания RCU. Также выявлена регрессия производительности при чтении в unmapped user pages. На 13 октября ветка noref-filemap-read-with-llm не была включена в основную ветку Linux 7.3-rc6. Торвальдс предостерегает: «Нужно быть очень осторожным, используя ИИ для реальных и важных задач», но признает, что ИИ делает программирование более приятным процессом.
Источник: ZDNet AI ↗
