ТехноСводка

ИИ

Торвальдс с помощью Claude Code ускорил чтение из кеша Linux в 23 раза в тесте

Линус Торвальдс с помощью Claude Code подготовил оптимизацию страничного кеша Linux, которая в синтетическом тесте ускорила чтение почти в 23 раза, но при проверке в ней нашли состояние гонки.

Узкое место связано со счётчиком ссылок на folio: при параллельном чтении одного файла потоки конкурируют за одну строку кеша процессора. На проблему ещё в 2024 году обращал внимание Мэтью Уилкокс. Торвальдс опубликовал экспериментальную ветку с патчами; по его описанию, Claude Code под его руководством подготовил код, тесты, предварительный разбор и черновик документации, а измерения он проводил сам. Решение использует RCU и новый флаг PG_rcu_free, чтобы не менять счётчик ссылок в частом пути чтения.

На 64-поточном AMD Ryzen Threadripper показатель вырос с 13,3 до 304 млн чтений в секунду. Сам Торвальдс предупредил, что тест синтетический, а в реальных сценариях прирост будет заметно скромнее. Кроме того, у оптимизации обнаружились побочные эффекты, например замедление отдельных сценариев чтения.

Кирилл Шутёмов нашёл состояние гонки в filemap_read_rcu_batch(): читающий поток мог получить содержимое старого блока памяти. Уилкокс усомнился в отдельных решениях по управлению памятью. Торвальдс предложил Шутёмову продолжить работу, и 19 октября тот опубликовал переработанную серию из 18 патчей. Изменения пока на стадии RFC и в основную ветку ядра не вошли.

  • Тест на Threadripper: 13,3 → 304 млн чтений/с
  • В реальных задачах прирост будет скромнее, предупредил Торвальдс
  • Серия из 18 патчей пока на стадии RFC

Источники

Текст подготовлен автоматически по материалам источников и может содержать неточности.