The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Разработчик io_uring выявил в QEMU проблему, в 50-80 раз замедлявшую fdmon в режиме простоя

20.02.2026 11:49 (MSK)

Йенс Эксбо (Jens Axboe), создатель io_uring и планировщиков ввода/вывода CFQ, Deadline и Noop, предложил для включения в кодовую базу эмулятора QEMU патч, в 50-80 раз сокращающий задержки в fdmon (file descriptor monitoring) в режиме "aio=io_uring" при нахождении системы в состоянии простоя (iddle).

Проблема проявлялась из-за перевода операции ppoll() в состоянии сна с таймаутом 499 мс, несмотря на наличие ввода/вывода. Для возобновления выполнения основного цикла обработки событий, приостанавливаемого из-за ppoll(), предложен патч, добавляет в функцию создания записи SQE (Submission Queue Entry) вызов функции aio_notify(), выводящий ppoll() из режима сна.

Проблема всплыла при регрессионном тестировании io_uring в виртуальных машинах c разными блочными устройствами. Йенс обратил внимание на случайное появление таймаутов при использовании AHCI/SATA-устройств в режиме "aio=io_uring", в то время как в конфигурациях с устройствами virtio-blk или nvme тесты всегда успешно завершались примерно за секунду. При этом отмечается, что проблема затрагивает все типы блочных устройств, но для устройств AHCI/SATA появление задержек наиболее ярко выражено из-за использования MMIO.

Йенс также описал свой опыт отладки проблемы с использованием AI-ассистента Claude. После определения сценария, воспроизводящего условия для возникновения таймаута, он передал имеющиеся отладочные данные Claude, предоставил доступ к виртуальной машине и предложил определить вероятные причины выявленного сбоя.

Claude решил проверить замедлится ли работа при использовании устройства virtio-blk и запустил с ним предложенный разработчиком деструктивный сценарий, воспроизводящий проблему. В ходе выполнения проверки были удалены первые 128 МБ содержимого из блочного устройства /dev/vda в виртуальной машине. После этого, Claud сделал вывод, что проблема не в virtio-blk. Когда Йенс указал AI-ассистенту на удаление части содержимого /dev/vda, он ответил "Да, я сделал это", а после просьбы исправить - восстановил работоспособность виртуального диска /dev/vda. Отмечается, что использование AI-ассистента помогло лучше понять особенности выполнения различных циклов обработки событий в QEMU.

Примечательно, что проблему было достаточно трудно обнаружить, так как в синтетических тестах замедление не фиксируется из-за того, что на возникновение сбоя влияет пробуждение цикла обработки событий с ppoll из-за другой активности, а синтетические тесты ввода/вывода не выполняют обработку полученных данных. Замедление стало более заметным при добавлении нескольких вызовов usleep() для симуляции обработки данных.

До исправления на системе в состоянии простоя (iddle):


      time sudo ./iotest /dev/sda

      Executed in   25.76 secs      fish           external
      usr time    6.19 millis  783.00 micros    5.41 millis
      sys time   12.43 millis  642.00 micros   11.79 millis

После исправления на системе в состоянии простоя:


      time sudo ./iotest /dev/sda

      Executed in    1.30 secs      fish           external
      usr time    2.14 millis    0.14 millis    2.00 millis
      sys time   16.93 millis    1.16 millis   15.76 millis


  1. Главная ссылка к новости (https://www.phoronix.com/news/...)
  2. OpenNews: Для ядра Linux подготовлены оптимизации, повышающие производительность планировщиков ввода/вывода
  3. OpenNews: Увеличение скорости ввода/вывода на 6% в Linux, благодаря кэшированию запросов времени
  4. OpenNews: Google отключил поддержку io_uring в ChromeOS и Android из-за плачевного состояния безопасности
  5. OpenNews: Прототип руткита для Linux, использующий io_uring для обхода анализаторов системных вызовов
  6. OpenNews: Уязвимость в подсистеме io_uring, позволяющая повысить привилегии в системе
Лицензия: CC BY 3.0
Наводку на новость прислал Аноним
Короткая ссылка: https://opennet.ru/64834-io_uring
Ключевые слова: io_uring, qemu
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (5) RSS
  • 1, Аноним (1), 12:32, 20/02/2026 [ответить]  
  • +/
    Пример хорошего взаимодействия разработчика и ai-помощника.
     
  • 2, Аноним (2), 12:33, 20/02/2026 [ответить]  
  • +/
    Ну хоть здесь про QEMU написали, а то Phoronix всех ввёл в заблуждение, что проблема в ядре Linux и в 50 раз ускорили сам io_uring.

    https://web.archive.org/web/20260219171610/https://www.phoronix.com/news/AI-50

    "AI Helped Uncover A "50-80x Improvement" For Linux's IO_uring... The code is on its way to the Linux kernel... Axboe commented today that both of these patches are now staged for inclusion in making their way to the mainline Linux kernel."

     
  • 3, Аноним (3), 12:34, 20/02/2026 [ответить]  
  • +/
    Пусть лучше выявляет проблемы в своем iu_uring, который кишит ими.
     
  • 4, СтсадминА (?), 12:40, 20/02/2026 [ответить]  
  • +/
    То есть сначала сами замедлили а теперь ускорили и выдали это за достижение?
     
  • 5, Аноним (5), 12:40, 20/02/2026 [ответить]  
  • +/
    Главное брать хорошие ИИ модели.
    Иначе она просто 499 мс уменьшит в 50-80 раз и всё.
     
     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру