Создатель Linux Линус Торвальдс поручил ИИ-ассистенту Claude Code решить проблему, над которой разработчики ядра бились два года. В тесте чтение ускорилось в 23 раза, но проверка нашла в коде ошибку.
Линус Торвальдс написал с помощью ИИ-ассистента Claude Code от Anthropic набор исправлений для ядра Linux. Он рассказал об этом 13 октября в рассылке разработчиков ядра. В синтетическом тесте исправления ускорили чтение файлов из кеша почти в 23 раза. Однако другие программисты при проверке нашли в коде ошибку, и доработкой занялся другой разработчик.
Проблема касалась страничного кеша, то есть области памяти, где ядро хранит недавно прочитанные данные файлов. Когда много потоков одновременно читают один файл, каждый из них увеличивает и уменьшает общий счетчик ссылок на один и тот же блок памяти. Ядра процессора постоянно перебрасывают этот счетчик друг другу и тратят на это почти все время. На ноутбуке Торвальдса с Intel Core i7-8565U работа со счетчиком давала 99,92% таких перебросок. Разработчик ядра Мэтью Уилкокс обратил внимание на проблему еще в 2024 году. С тех пор предлагали несколько решений, но у каждого были недостатки. Торвальдс признался, что около полутора лет сам пользовался экспериментальным вариантом, который в итоге оказался ошибочным.
«Я решил, что попробую действительно решить эту проблему с помощью языковой модели», — написал Торвальдс. По его словам, Claude Code под его руководством подготовил код патчей, тестовые программы, разбор проблем и черновик документации. Производительность Торвальдс замерял сам. Описания изменений, которые составил ИИ, вышли «немного многословнее», чем он написал бы сам, но, как он считает, «может, так даже лучше». Решение убирает работу со счетчиком из основного пути чтения. Память освобождается с задержкой — только после того, как все читающие потоки закончат работу.
Источник: hi-tech.mail.ru