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

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

Изображение: OpenAI

Линус Торвальдс предложил подготовленные с помощью Claude Code патчи для Linux, чтобы устранить узкое место в работе страничного кеша. Как сообщает The New Stack, проверка выявила состояние гонки, из-за которого чтение могло вернуть данные, никогда не записанные в файл.

В синтетическом тесте на 64-поточном Ryzen Threadripper Торвальдса серия из десяти патчей увеличила пропускную способность в 23 раза. Он предупредил, что при реальных нагрузках выигрыш будет значительно меньше.

По словам Торвальдса, Claude Code написал реализацию, тесты и первоначальную документацию, а также проверял код под его руководством. Сам Торвальдс запускал тесты производительности. До этого он 18 месяцев использовал собственный вариант исправления той же проблемы, который содержал ошибки.

В часто используемом сценарии буферизованного чтения патчи позволяют обойтись без операций со счётчиками ссылок на фолио. Новая реализация использует отдельный флаг и отложенное освобождение памяти через RCU, чтобы защитить фолио на время копирования данных в пользовательскую память, если копирование не вызывает страничного исключения. Разработчики также высказали сомнения в том, как реализовано освобождение памяти.

Найденная гонка возникала при замене фолио с последующим увеличением размера файла. Торвальдс предложил раньше считывать размер файла и объединить проверки фолио. Дальнейшую работу над патчами он передал разработчику ядра, который обнаружил ошибку и уже включил предложенные изменения в обновлённый патч.

Сергей
Автор: Сергей
Пишу о кибербезопасности и информационных технологиях на простом и понятном языке
Комментарии:

Как мы обрабатываем данные: политика обработки персональных данных