{"id":161903,"date":"2026-02-20T17:11:55","date_gmt":"2026-02-20T15:11:55","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/razrabotchik-io_uring-vyyavil-v-qemu-problemu-v-50-80-raz-zamedlyavshuyu-fdmon-v-rezhime-prostoya"},"modified":"2026-02-20T17:11:55","modified_gmt":"2026-02-20T15:11:55","slug":"razrabotchik-io_uring-vyyavil-v-qemu-problemu-v-50-80-raz-zamedlyavshuyu-fdmon-v-rezhime-prostoya","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/razrabotchik-io_uring-vyyavil-v-qemu-problemu-v-50-80-raz-zamedlyavshuyu-fdmon-v-rezhime-prostoya","title":{"rendered":"The Developer io_uring Discovered an Issue in QEMU That Slowed Down fdmon by 50-80 Times","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Jens Axboe, the creator of io_uring and the CFQ, Deadline, and Noop I\/O schedulers, proposed a patch for inclusion in the QEMU emulator codebase, which reduces delays when working with fdmon (file descriptor monitoring) in 'aio=io_uring' mode and when the system is idle by 50 to 80 times.     <\/p>\n<p>The problem was manifested due to the translation of the ppoll() operation into a sleep state with a timeout of 499 ms, despite the presence of I\/O. To resume the main event processing loop, which was suspended due to ppoll(), a patch was proposed that adds a call to the aio_notify() function in the SQE (Submission Queue Entry) creation function.      <\/p>\n<p>The issue arose during regression testing of io_uring with <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/en\/vps\/abuzoustojchivye-vps\/\"   title=\"virtual machines\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"4298\">virtual machines<\/a> with various block devices. Jens noted the random appearance of timeouts when using AHCI\/SATA devices in 'aio=io_uring' mode, while tests with virtio-blk or NVMe devices always completed successfully in about a second. It is noted that the issue affects all types of block devices, but the appearance of delays is most pronounced for AHCI\/SATA devices due to the use of MMIO.            <\/p>\n<p>Jens also described his experience debugging the problem using the AI assistant Claude. After identifying a scenario that reproduced the conditions for a timeout, he provided Claude with the existing debugging data, gave access to the virtual machine, and suggested determining the likely causes of the identified failure.     <\/p>\n<p>Claude decided to check if performance would degrade when using a virtio-blk device and ran a destructive script proposed by the developer, which reproduces the problem. During the test, the first 128 MB of contents were deleted from the block device \/dev\/vda in the virtual machine. After that, Claude concluded that the problem was not with virtio-blk. When Jens noted the AI assistant about deleting part of the contents of \/dev\/vda, it replied, 'Yes, I did that,' and after a request to fix it, restored the operation of the virtual disk \/dev\/vda. It is noted that using the AI assistant helped to better understand the features of executing various event processing loops in QEMU.      <\/p>\n<p>It is noteworthy that the issue was quite difficult to detect, as the slowdown is not recorded in synthetic tests due to the fact that the occurrence of the failure is influenced by the awakening of the event processing cycle with ppoll due to other activity, and synthetic I\/O tests do not process the received data. The slowdown became more noticeable with the addition of several calls to usleep() to simulate data processing.      <\/p>\n<p>Before the fix on the idle system:          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      <\/p>\n<p>After the fix on the idle system:          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<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=64834\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0419\u0435\u043d\u0441 \u042d\u043a\u0441\u0431\u043e (Jens Axboe), \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c io_uring \u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u0432\u0432\u043e\u0434\u0430\/\u0432\u044b\u0432\u043e\u0434\u0430 CFQ, Deadline \u0438 Noop, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 QEMU \u043f\u0430\u0442\u0447, \u0432 50-80 \u0440\u0430\u0437 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 fdmon (file descriptor monitoring) \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 &#171;aio=io_uring&#187; \u0438 \u043d\u0430\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0438 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043f\u0440\u043e\u0441\u0442\u043e\u044f (idle). \u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043f\u0440\u043e\u044f\u0432\u043b\u044f\u043b\u0430\u0441\u044c \u0438\u0437-\u0437\u0430 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0430 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 ppoll() \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u0441\u043d\u0430 \u0441 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u043e\u043c 499 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-161903","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0419\u0435\u043d\u0441 \u042d\u043a\u0441\u0431\u043e (Jens Axboe), \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c io_uring \u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u0432\u0432\u043e\u0434\u0430\/\u0432\u044b\u0432\u043e\u0434\u0430 CFQ, Deadline \u0438 Noop, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 QEMU \u043f\u0430\u0442\u0447, \u0432 50-80 \u0440\u0430\u0437 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 fdmon (file.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/razrabotchik-io_uring-vyyavil-v-qemu-problemu-v-50-80-raz-zamedlyavshuyu-fdmon-v-rezhime-prostoya\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a io_uring \u0432\u044b\u044f\u0432\u0438\u043b \u0432 QEMU \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0432 50-80 \u0440\u0430\u0437 \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0432\u0448\u0443\u044e fdmon \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u044f | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0419\u0435\u043d\u0441 \u042d\u043a\u0441\u0431\u043e (Jens Axboe), \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c io_uring \u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u0432\u0432\u043e\u0434\u0430\/\u0432\u044b\u0432\u043e\u0434\u0430 CFQ, Deadline \u0438 Noop, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 QEMU \u043f\u0430\u0442\u0447, \u0432 50-80 \u0440\u0430\u0437 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 fdmon (file.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/razrabotchik-io_uring-vyyavil-v-qemu-problemu-v-50-80-raz-zamedlyavshuyu-fdmon-v-rezhime-prostoya\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-02-20T15:11:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-02-20T15:11:55+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47The io_uring developer identified an issue in QEMU that slowed down fdmon in idle mode by 50-80 times | ProHoster","description":"Jens Axboe, the creator of io_uring and the I\/O schedulers CFQ, Deadline, and Noop, proposed a patch for inclusion in the QEMU codebase that reduces delays in fdmon operation by 50-80 times.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/razrabotchik-io_uring-vyyavil-v-qemu-problemu-v-50-80-raz-zamedlyavshuyu-fdmon-v-rezhime-prostoya","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a io_uring \u0432\u044b\u044f\u0432\u0438\u043b \u0432 QEMU \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0432 50-80 \u0440\u0430\u0437 \u0437\u0430\u043c\u0435\u0434\u043b\u044f\u0432\u0448\u0443\u044e fdmon \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u044f | ProHoster","og:description":"\u0419\u0435\u043d\u0441 \u042d\u043a\u0441\u0431\u043e (Jens Axboe), \u0441\u043e\u0437\u0434\u0430\u0442\u0435\u043b\u044c io_uring \u0438 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u0432\u0432\u043e\u0434\u0430\/\u0432\u044b\u0432\u043e\u0434\u0430 CFQ, Deadline \u0438 Noop, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u043b \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0432 \u043a\u043e\u0434\u043e\u0432\u0443\u044e \u0431\u0430\u0437\u0443 \u044d\u043c\u0443\u043b\u044f\u0442\u043e\u0440\u0430 QEMU \u043f\u0430\u0442\u0447, \u0432 50-80 \u0440\u0430\u0437 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u044e\u0449\u0438\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 fdmon (file.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/razrabotchik-io_uring-vyyavil-v-qemu-problemu-v-50-80-raz-zamedlyavshuyu-fdmon-v-rezhime-prostoya","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-02-20T15:11:55+00:00","article:modified_time":"2026-02-20T15:11:55+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"161903","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-02-20 15:12:29","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-02-20 15:11:55","updated":"2026-02-20 15:12:29","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/161903","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=161903"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/161903\/revisions"}],"predecessor-version":[{"id":164173,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/161903\/revisions\/164173"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=161903"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=161903"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=161903"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}