{"id":54872,"date":"2020-01-06T00:00:00","date_gmt":"2020-01-05T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/linus-torvalds-oproverg-problemy-s-planirovshhikom-zadach-vsplyvshie-v-teste-proizvoditelnosti"},"modified":"2020-02-18T14:02:55","modified_gmt":"2020-02-18T11:02:55","slug":"linus-torvalds-oproverg-problemy-s-planirovshhikom-zadach-vsplyvshie-v-teste-proizvoditelnosti","status":"publish","type":"post","link":"https:\/\/prohoster.info\/en\/blog\/news\/linus-torvalds-oproverg-problemy-s-planirovshhikom-zadach-vsplyvshie-v-teste-proizvoditelnosti","title":{"rendered":"Linus Torvalds dispelled issues with the task scheduler that arose in the performance test.","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Game Developer Malte Skarupke <noindex><a rel=\"nofollow\" href=\"https:\/\/probablydance.com\/2019\/12\/30\/measuring-mutexes-spinlocks-and-how-bad-the-linux-scheduler-really-is\/\">announced<\/a><\/noindex> comparison of performance of locks based on <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9C%D1%8C%D1%8E%D1%82%D0%B5%D0%BA%D1%81\">Mutex<\/a><\/noindex> and <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/Spinlock\">Spinlock<\/a><\/noindex> the use of different task schedulers. The tests showed abnormally high latencies when using Spinlock with the default scheduler used in Linux. The test author concluded that the Linux task scheduler has issues that negatively impact the performance of games developed for the Google Stadia service, where games run on a GPU in a cloud environment, and the client streams the screen content at up to 60 frames per second. Under these conditions, timely frame output to the screen is essential, and delays exceeding a millisecond become noticeable.<\/p>\n<p>Regarding the tests <noindex><a rel=\"nofollow\" href=\"https:\/\/www.realworldtech.com\/forum\/?threadid=189711&#038;curpostid=189723\">connected<\/a><\/noindex> Linus Torvalds, who referred to them as garbage (\"pure garbage\") and an example of how one can obtain metrics that do not reflect reality, without fully understanding the topic. A spinlock is a low-level primitive that should be used with great caution in user space and with a complete understanding of the details; otherwise, one may end up with what the test author demonstrated. Linus advised game developers not to use spinlocks and not to attempt to create their own locking systems based on them, but to use existing, proven mechanisms that inform the system about waiting for the lock to be released to avoid scheduler interference. <\/p>\n<p>Spinlock-based wrappers should only be used when there is complete confidence that the scheduler will not interrupt their execution. The locks used in tests based on spinlocks are implemented through a homemade wrapper operating in user space. The task scheduler can take control at any random moment during the execution of this wrapper and switch to executing another task. Since performance measurement is based on absolute timer values, the delays measured in the tests encompass not only the delays in the lock handler but also the code that was executed in another context, i.e., measuring not only what the test author attempted to measure but also the \"noise\" from other computations in the system.<\/p>\n<p>Test Author <noindex><a rel=\"nofollow\" href=\"https:\/\/www.realworldtech.com\/forum\/?threadid=189711&#038;curpostid=189747\">attempted<\/a><\/noindex> Disagree with Linus by pointing out that the use of custom blocking systems based on spinlocks is often employed in practice in games, as tests show higher performance when using simpler schedulers than Linux. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.realworldtech.com\/forum\/?threadid=189711&#038;curpostid=189752\">argued<\/a><\/noindex>, that the Linux scheduler is universal, honed for decades and optimized not only for desktops and games but also for other types of loads, such as server systems, and therefore takes into account numerous nuances when scheduling task execution. <\/p>\n<p>Adding specific optimizations that reduce latency in Google Stadia games may improve responsiveness in certain cases, but will likely lead to decreased overall scheduler efficiency. For example, the Windows scheduler performs better in the discussed tests, as it is significantly simpler than the Linux scheduler and is primarily optimized for desktop-specific tasks.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"link\"><\/a><\/noindex><\/p>\n<p>Source: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52140\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0433\u0440 Malte Skarupke \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043e\u043a \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 Mutex \u0438 Spinlock \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u0432 \u0437\u0430\u0434\u0430\u0447. \u0422\u0435\u0441\u0442\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438 \u0430\u043d\u043e\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 Spinlock \u0441 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u043c \u0432 Linux \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u0437\u0430\u0434\u0430\u0447. \u0410\u0432\u0442\u043e\u0440 \u0442\u0435\u0441\u0442\u043e\u0432 \u0441\u0434\u0435\u043b\u0430\u043b \u0432\u044b\u0432\u043e\u0434, \u0447\u0442\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a \u0437\u0430\u0434\u0430\u0447 Linux \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e \u0441\u043a\u0430\u0437\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0435 \u0438\u0433\u0440, \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0435\u043c\u044b\u0445 \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0438\u0441\u0430 Google Stadia, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-54872","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0433\u0440 Malte Skarupke \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435.\" \/>\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\/linus-torvalds-oproverg-problemy-s-planirovshhikom-zadach-vsplyvshie-v-teste-proizvoditelnosti\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\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\u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043e\u043f\u0440\u043e\u0432\u0435\u0440\u0433 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u0437\u0430\u0434\u0430\u0447, \u0432\u0441\u043f\u043b\u044b\u0432\u0448\u0438\u0435 \u0432 \u0442\u0435\u0441\u0442\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0433\u0440 Malte Skarupke \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/en\/blog\/news\/linus-torvalds-oproverg-problemy-s-planirovshhikom-zadach-vsplyvshie-v-teste-proizvoditelnosti\" \/>\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=\"2020-01-05T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:02: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\udd47Linus Torvalds refuted issues with the task scheduler that arose in the performance test | ProHoster","description":"Game developer Malte Skarupke published a comparison.","canonical_url":"https:\/\/prohoster.info\/en\/blog\/news\/linus-torvalds-oproverg-problemy-s-planirovshhikom-zadach-vsplyvshie-v-teste-proizvoditelnosti","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\u041b\u0438\u043d\u0443\u0441 \u0422\u043e\u0440\u0432\u0430\u043b\u044c\u0434\u0441 \u043e\u043f\u0440\u043e\u0432\u0435\u0440\u0433 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u043e\u043c \u0437\u0430\u0434\u0430\u0447, \u0432\u0441\u043f\u043b\u044b\u0432\u0448\u0438\u0435 \u0432 \u0442\u0435\u0441\u0442\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 | ProHoster","og:description":"\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0438\u0433\u0440 Malte Skarupke \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u043b \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435.","og:url":"https:\/\/prohoster.info\/en\/blog\/news\/linus-torvalds-oproverg-problemy-s-planirovshhikom-zadach-vsplyvshie-v-teste-proizvoditelnosti","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":"2020-01-05T21:00:00+00:00","article:modified_time":"2020-02-18T11:02:55+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"54872","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":null,"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-24 13:00:23","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:56:23","updated":"2026-01-24 13:00:23","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\/54872","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=54872"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/posts\/54872\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/media?parent=54872"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/categories?post=54872"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/en\/wp-json\/wp\/v2\/tags?post=54872"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}