Оптимізація токенівВплив: Середній
Лінус Торвальдс використав мовну модель для оптимізації підсистеми памʼяті ядра Linux
Лінус Торвальдс представив серію з десяти патчів до ядра Linux, створених за допомогою LLM, що суттєво прискорили читання. Ревʼю колег швидко виявило тонкий стан гонитви.

Чому це важливо
Інженери можуть прискорити низькорівневі оптимізації за допомогою ШІ, проте зобовʼязані вручну валідувати стан гонитви та багатопотоковість.
TL;DR
- 01Лінус Торвальдс використав LLM для створення RCU-захищеного fastpath доступу до фоліо памʼяті.
- 02Відмова від операцій із лічильником посилань дала прискорення read() на порядок у бенчмарках.
- 03Ревʼю виявило стан гонитви, що підтверджує критичну потребу ретельної верифікації згенерованого коду.
Ключові факти
- Кількість патчів
- Серія з 10 патчів
- Приріст продуктивності
- Прискорення бенчмарку read() на порядок
- Підсистема
- Пошук фоліо памʼяті ядра Linux
- Виявлений недолік
- Стан гонитви під час ревʼю
Переробка фоліо через RCU у 10 патчах. Лінус Торвальдс продемонстрував розроблену за підтримки LLM серію патчів для прискорення пошуку фоліо в ядрі Linux. Реалізація оптимізує шлях читання, виявляючи гарячі фоліо та затримуючи їх звільнення до завершення RCU-періоду. Замість звичного пошуку вказівника під RCU, патч дозволяє читати дані безпосередньо в захищеній зоні без інкременту лічильника посилань, якщо копіювання в user-space не спричиняє page faults. ### Десятикратне прискорення проти стану гонитви. Відсутність блокувань лічильника посилань забезпечила прискорення на порядок у бенчмарках інтенсивного читання read(). Проте рецензування коду ментейнерами виявило стан гонитви під час паралельного доступу. Цей випадок демонструє як потенціал, так і головну небезпеку генеративного коду: моделі чудово синтезують швидкі шляхи виконання, але не здатні гарантувати математичну коректність асинхронних інваріантів.
Спробуй за 2 хвилини
rcu_read_lock();
folio = find_get_folio_rcu(mapping, index);
if (folio && folio_is_hot(folio)) {
/* Read directly under RCU delay without refcount */
copy_to_user_nofault(ubuf, folio_address(folio), len);
}
rcu_read_unlock();c
✓ Коли використовувати
- Застосовуйте LLM для пошуку архітектурних рішень оптимізації структур даних.
- Використовуйте моделі для створення драфтів патчів за умови ретельного аудиту експертом.
✕ Коли НЕ варто
- Не довіряйте моделям генерацію логіки синхронізації без глибокої експертизи в підсистемі.
- Не дозволяйте починаючим авторам надсилати згенерований код без детального ручного аналізу.
Що зробити сьогодні
- Впровадьте обовʼязкове ревʼю багатопотокових інваріантів для будь-якого згенерованого ШІ коду.
- Перевірте швидкі шляхи доступу до памʼяті на наявність вузьких місць у лічильниках посилань.
Що каже спільнота
“Several people I have looked up to my entire life were there, which also gives you an idea of their age (I am 40). They're all using AI. They are not mindless boosters about it, but clearly find it a useful tool.”
“He could have at least written the commit messages himself. That llm yapping is annoying to read.”
#Linux#LLM#Git