{"id":116505,"date":"2024-06-12T18:05:44","date_gmt":"2024-06-12T16:05:44","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/v-yadre-linux-poyavitsya-vozmozhnost-ispolzovaniya-ebpf-dlya-sozdaniya-planirovshhikov-zadach"},"modified":"2024-06-12T18:05:44","modified_gmt":"2024-06-12T16:05:44","slug":"v-yadre-linux-poyavitsya-vozmozhnost-ispolzovaniya-ebpf-dlya-sozdaniya-planirovshhikov-zadach","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/v-yadre-linux-poyavitsya-vozmozhnost-ispolzovaniya-ebpf-dlya-sozdaniya-planirovshhikov-zadach","title":{"rendered":"The Linux kernel will feature the ability to use eBPF for creating task schedulers","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Linus Torvalds has expressed his readiness to accept patches implementing the 'sched_ext' (SCX) mechanism into the Linux 6.11 kernel, with a release expected at the end of September. This mechanism allows the use of eBPF to create CPU schedulers covering almost all aspects of task execution scheduling and CPU resource allocation. Such schedulers can be dynamically loaded and executed within the Linux kernel in a virtual eBPF machine, where, thanks to JIT compilation, bytecode is translated into machine instructions and executed with the performance of compiled code.<\/p>\n<p>The proposed patches implement a new scheduling class SCHED_EXT, for which the kernel's call priority is set between the classes SCHED_IDLE and SCHED_NORMAL. This prevents BPF handlers tied to SCHED_EXT from affecting tasks already attached to the default task scheduler (SCHED_NORMAL), but allows individual tasks to be attached to SCHED_EXT or to move all processes with priority lower than that of real-time execution for processing using it. If no BPF handlers are tied to SCHED_EXT, all processes moved to the SCHED_EXT class will be handled using the SCHED_NORMAL scheduler. The work of BPF handlers is limited to parsing the queues of tasks waiting to be executed on the CPU (one global queue and one for each CPU core) and selecting the task that should be given CPU resources when a CPU core is freed.<\/p>\n<p>The sched_ext mechanism simplifies the creation of schedulers tailored to specific tasks, allows experimentation with various techniques and scheduling strategies, and enables quick development of working prototypes and the replacement of schedulers on the fly in production infrastructures. For example, using sched_ext, one can create a scheduler that takes into account the specifics of a particular application and dynamically alters its execution scheduling strategy based on system state and other factors. <\/p>\n<p>Currently, about a dozen schedulers based on sched_ext are being developed, with the logic for task scheduling defined in user space and loaded into the kernel in the form of BPF programs:<\/p>\n<ul>\n<li class=\"l\">  scx_layered \u2014 a hybrid task scheduler that divides tasks into layers, each applying its own scheduling strategy. For example, scx_layered allows the separation of certain tasks into a separate layer that guarantees specific CPU resources or increases the priority of individual applications. The scheduler is being developed by Meta. The user-space logic for BPF generation is written in Rust.\n<li class=\"l\"> scx_rustland \u2014 a scheduler optimized to prioritize interactive tasks against CPU-intensive tasks. For example, in a test running the game application Terraria alongside a kernel compilation, the scx_rustland scheduler achieved higher FPS in the game than the default EEVDF scheduler. The project is being developed by an employee of Canonical. The user-space logic for BPF generation is written in Rust.\n<li class=\"l\"> scx_lavd \u2014 an implementation of the LAVD (Latency-criticality Aware Virtual Deadline) scheduling algorithm, which takes into account the importance of reducing latencies for specific tasks and uses information about the progress of processes to make CPU resource allocation decisions. The scheduler is being developed by Igalia and Valve to reduce latencies in computer games and interactive tasks. The user-space logic for BPF generation is written in Rust.\n<li class=\"l\"> scx_rusty, scx_rlfifo, scx_mitosis \u2014 examples of schedulers with user-space components written in Rust, realizing load balancing between groups of tasks based on demand, a basic FIFO scheduler, and a scheduler for binding task groups to CPU cores.\n<li class=\"l\"> scx_central, scx_flatcg, scx_nest, scx_pair, scx_qmap, scx_simple, scx_userland \u2014 examples of schedulers with user-space components in C, illustrating various capabilities of sched-ext.\n<\/ul>\n<p>The sched_ext mechanism was initially proposed for consideration by kernel developers in 2022, after which six patch revisions were published. Despite the lack of support in the main kernel, it is possible to install sched_ext through additional packages for distributions like Ubuntu, Arch Linux, Fedora, and NixOS. Canonical is considering including sched_ext components in Ubuntu 24.10, while Valve is working on integrating sched_ext into the Steam Deck. At Meta, a scheduler based on sched_ext is already utilized in their operational infrastructure. <\/p>\n<p>Google is experimenting with its own framework, ghOSt, which allows influencing task scheduler decisions through BPF programs. Currently, efforts are underway to port ghOSt to sched_ext. Google is also advancing the sched_ext port for ChromeOS with the intent to leverage a hybrid scheduler, scx_layered, to reduce latency without using extensions for real-time operation. Oculus is developing the sched_ext port for Android.<br \/>\n<br \/>Source: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=61354\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u0432\u044b\u0440\u0430\u0437\u0438\u043b \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u044f\u0434\u0440\u0430 Linux 6.11, \u0440\u0435\u043b\u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f, \u043f\u0430\u0442\u0447\u0435\u0439 \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 &#171;sched_ext&#187; (SCX), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c eBPF \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 CPU, \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0441\u0435 \u0430\u0441\u043f\u0435\u043a\u0442\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 CPU. \u041f\u043e\u0434\u043e\u0431\u043d\u044b\u0435 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0430\u0442\u044c\u0441\u044f \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0432\u043d\u0443\u0442\u0440\u0438 \u044f\u0434\u0440\u0430 Linux \u0432 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 eBPF, \u0432 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-116505","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=\"\u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u0432\u044b\u0440\u0430\u0437\u0438\u043b \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u044f\u0434\u0440\u0430 Linux 6.11, \u0440\u0435\u043b\u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f, \u043f\u0430\u0442\u0447\u0435\u0439 \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 &quot;sched_ext&quot; (SCX), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c eBPF \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/en\/blog\/news\/v-yadre-linux-poyavitsya-vozmozhnost-ispolzovaniya-ebpf-dlya-sozdaniya-planirovshhikov-zadach\" \/>\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\u0412 \u044f\u0434\u0440\u0435 Linux \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f eBPF \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u0437\u0430\u0434\u0430\u0447 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u0432\u044b\u0440\u0430\u0437\u0438\u043b \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u044f\u0434\u0440\u0430 Linux 6.11, \u0440\u0435\u043b\u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f, \u043f\u0430\u0442\u0447\u0435\u0439 \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 &quot;sched_ext&quot; (SCX), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c eBPF \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/v-yadre-linux-poyavitsya-vozmozhnost-ispolzovaniya-ebpf-dlya-sozdaniya-planirovshhikov-zadach\" \/>\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=\"2024-06-12T16:05:44+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-06-12T16:05:44+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\udd47 eBPF scheduler creation capability will be available in the Linux kernel | ProHoster","description":"Linus Torvalds has expressed willingness to accept patches implementing the 'sched_ext' (SCX) mechanism, which allows the use of eBPF for scheduler creation, into Linux kernel 6.11, the release of which is expected at the end of September.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/v-yadre-linux-poyavitsya-vozmozhnost-ispolzovaniya-ebpf-dlya-sozdaniya-planirovshhikov-zadach","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\u0412 \u044f\u0434\u0440\u0435 Linux \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f eBPF \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u0437\u0430\u0434\u0430\u0447 | ProHoster","og:description":"\u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u0432\u044b\u0440\u0430\u0437\u0438\u043b \u0433\u043e\u0442\u043e\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043d\u044f\u0442\u044c \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 \u044f\u0434\u0440\u0430 Linux 6.11, \u0440\u0435\u043b\u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u043a\u043e\u043d\u0446\u0435 \u0441\u0435\u043d\u0442\u044f\u0431\u0440\u044f, \u043f\u0430\u0442\u0447\u0435\u0439 \u0441 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0435\u0439 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 &quot;sched_ext&quot; (SCX), \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c eBPF \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/v-yadre-linux-poyavitsya-vozmozhnost-ispolzovaniya-ebpf-dlya-sozdaniya-planirovshhikov-zadach","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":"2024-06-12T16:05:44+00:00","article:modified_time":"2024-06-12T16:05:44+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"116505","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-01-23 02:11:39","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2026-01-23 02:11:39","updated":"2026-01-23 02:11:39","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\/116505","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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/comments?post=116505"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/116505\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=116505"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=116505"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=116505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}