Линус Торвальдс экспериментирует с генерацией изменений к ядру через AI
- Claude Code под контролем Линуса Торвальдса подготовил патчи, тесты и черновик примечания для оптимизации чтения мелких блоков в ядре Linux.
- Патчи находятся в отдельной ветке; пока неясно, попадут ли они в основную ветку или останутся внутренним экспериментом.
- В тестах пропускная способность при восьми потоках выросла с 9,9–10,4 до 30–33 млн операций в секунду, при четырёх — с 8,9–11,6 до 25–26 млн.
Почему это важно: Патч устраняет конкуренцию потоков за счётчик ссылок: при чтении 16 байт восемью потоками ожидание доступа занимало 99,92% времени.
Линус Торвальдс подготовил набор патчей для подсистемы управления памятью в ядре Linux, реализующих оптимизацию для чтения мелких блоков данных из страничного кэша без атомарного изменения счётчика ссылок (refcount) в структуре folio. В тексте коммита указано, что изменения, связанные с ним тесты и черновой текст примечания созданы AI-ассистентом Claude Code при контроле со стороны Торвальдса. Изменение добавлено в отдельную ветку ядра noref-filemap-read-with-llm и пока не понятно, будет ли оно перенесено в основную ветку или это просто внутренний эксперимент.
При тестировании благодаря патчам удалось повысить пропускную способность чтения мелких файлов в конфигурации с 8 потоками с 9.9–10.4 до 30–33 миллионов операций в секунду (прирост в 3 раза), с 4 потоками — с 8.9–11.6 до 25–26 млн/сек (прирост в 2 раза), а при однопоточной нагрузке с 7.9–8.1 до 8.8–8.9 млн/сек. Прирост производительности объясняется тем, что при одновременном обращении к страничному кэшу возникает жёсткая конкуренция между потоками при доступе к кэшу. Например, когда 8 потоков пытаются одновременно читать по 16 байт данных 99.92% времени тратится не на само чтение, а на ожидание доступа к счётчику ссылок.
В патче для гарантирования корректности данных вместо выставления отдельных блокировок, изменения счётчиков ссылок или промежуточной буферизации применяется обходной вариант, использующий отложенное освобождение памяти с синхронизацией при помощи механизма RCU (Read-Copy-Update). Предложенный в патче метод гарантирует, что страница памяти не будет физически освобождена, пока читающий поток не завершит копирование данных, что позволяет читать данные напрямую без выставления отдельных блокировок.
Источник: http://www.opennet.ru/opennews/art.shtml? num=66447
OpenNet прочитано 1363 раза
Об этом также пишут
- Linux.org.ru Линус Торвальдс тестирует использование искусственного интеллекта для создания изменений в ядре 12.10.2026 22:23
