Линус Торвальдс предложил написанные с Claude Code патчи ядра Linux для ускорения чтения

Изображение: OpenAI
Линус Торвальдс предложил подготовленные с помощью Claude Code патчи для Linux, чтобы устранить узкое место в работе страничного кеша. Как сообщает The New Stack, проверка выявила состояние гонки, из-за которого чтение могло вернуть данные, никогда не записанные в файл.
В синтетическом тесте на 64-поточном Ryzen Threadripper Торвальдса серия из десяти патчей увеличила пропускную способность в 23 раза. Он предупредил, что при реальных нагрузках выигрыш будет значительно меньше.
По словам Торвальдса, Claude Code написал реализацию, тесты и первоначальную документацию, а также проверял код под его руководством. Сам Торвальдс запускал тесты производительности. До этого он 18 месяцев использовал собственный вариант исправления той же проблемы, который содержал ошибки.
В часто используемом сценарии буферизованного чтения патчи позволяют обойтись без операций со счётчиками ссылок на фолио. Новая реализация использует отдельный флаг и отложенное освобождение памяти через RCU, чтобы защитить фолио на время копирования данных в пользовательскую память, если копирование не вызывает страничного исключения. Разработчики также высказали сомнения в том, как реализовано освобождение памяти.
Найденная гонка возникала при замене фолио с последующим увеличением размера файла. Торвальдс предложил раньше считывать размер файла и объединить проверки фолио. Дальнейшую работу над патчами он передал разработчику ядра, который обнаружил ошибку и уже включил предложенные изменения в обновлённый патч.



