{"id":99293,"date":"2021-02-28T10:22:45","date_gmt":"2021-02-28T08:22:45","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu"},"modified":"2021-02-28T10:22:45","modified_gmt":"2021-02-28T08:22:45","slug":"v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pt\/blog\/news\/v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu","title":{"rendered":"O n\u00facleo do Linux 5.12 inclui o subsistema KFence para detectar erros ao trabalhar com mem\u00f3ria","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>A implementa\u00e7\u00e3o do mecanismo KFence (Kernel Electric Fence), que verifica o uso de mem\u00f3ria, detectando acessos fora dos limites dos buffers, acessos \u00e0 mem\u00f3ria ap\u00f3s a libera\u00e7\u00e3o e outros erros semelhantes, est\u00e1 inclu\u00edda no desenvolvimento do n\u00facleo Linux 5.12.     <\/p>\n<p>Uma funcionalidade semelhante j\u00e1 estava presente no n\u00facleo na forma da op\u00e7\u00e3o de compila\u00e7\u00e3o KASAN (kernel address sanitizer, utiliza Address Sanitizer em gcc e clang modernos) \u2014 no entanto, era principalmente posicionada para uso de depura\u00e7\u00e3o. O subsistema KFence se destaca do KASAN pela alta velocidade de opera\u00e7\u00e3o, o que permite usar essa funcionalidade mesmo em n\u00facleos em sistemas produtivos.     <\/p>\n<p>A aplica\u00e7\u00e3o em sistemas em produ\u00e7\u00e3o permitir\u00e1 detectar erros de uso da mem\u00f3ria que n\u00e3o aparecem em execu\u00e7\u00f5es de teste e surgem apenas sob cargas de trabalho ou ap\u00f3s longos per\u00edodos de opera\u00e7\u00e3o (para longos uptimes). Al\u00e9m disso, usar o KFence em sistemas em produ\u00e7\u00e3o permitir\u00e1 aumentar significativamente o n\u00famero de m\u00e1quinas envolvidas na verifica\u00e7\u00e3o da opera\u00e7\u00e3o do n\u00facleo com a mem\u00f3ria.    <\/p>\n<p>A m\u00ednima sobrecarga, independente da carga de trabalho, \u00e9 alcan\u00e7ada no KFence pela inser\u00e7\u00e3o de p\u00e1ginas de prote\u00e7\u00e3o (guard pages) na heap em intervalos fixos. Ap\u00f3s o t\u00e9rmino do tempo de cada intervalo de prote\u00e7\u00e3o, o KFence, atrav\u00e9s do sistema de aloca\u00e7\u00e3o de mem\u00f3ria padr\u00e3o (SLAB ou SLUB allocator), adiciona mais uma p\u00e1gina de prote\u00e7\u00e3o do pool de objetos KFence e reinicia a contagem do temporizador. Cada objeto KFence \u00e9 alocado em uma p\u00e1gina de mem\u00f3ria separada, e as p\u00e1ginas de mem\u00f3ria nas bordas esquerda e direita formam as p\u00e1ginas de prote\u00e7\u00e3o (guard pages), cujo tamanho \u00e9 escolhido aleatoriamente.     <\/p>\n<p>Assim, p\u00e1ginas com objetos s\u00e3o separadas umas das outras por p\u00e1ginas de prote\u00e7\u00e3o, que s\u00e3o configuradas para gerar \"page fault\" a qualquer acesso. Para detectar opera\u00e7\u00f5es de escrita fora dos limites do buffer dentro de p\u00e1ginas com objetos, s\u00e3o utilizadas adicionalmente \"zonas vermelhas\" baseadas em padr\u00f5es, que ocupam mem\u00f3ria n\u00e3o utilizada pelos objetos, que permanece devido ao alinhamento do tamanho das p\u00e1ginas de mem\u00f3ria.      \u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+ | xxxxxxxxx | O :       | xxxxxxxxx |       : O | xxxxxxxxx |     | xxxxxxxxx | B :       | xxxxxxxxx |       : B | xxxxxxxxx |     | x GUARD x | J : RED-  | x GUARD x | RED-  : J | x GUARD x |     | xxxxxxxxx | E :  ZONE | xxxxxxxxx |  ZONE : E | xxxxxxxxx |     | xxxxxxxxx | C :       | xxxxxxxxx |       : C | xxxxxxxxx |     | xxxxxxxxx | T :       | xxxxxxxxx |       : T | xxxxxxxxx |  \u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+\u2014\u2014+    <\/p>\n<p>No caso de uma tentativa de acesso a uma \u00e1rea fora dos limites do buffer, a opera\u00e7\u00e3o atinge a p\u00e1gina de prote\u00e7\u00e3o, resultando na gera\u00e7\u00e3o de um \"page fault\", que \u00e9 interceptado pelo KFence e registra no log os dados sobre o problema detectado. Por padr\u00e3o, o KFence n\u00e3o bloqueia o erro e apenas emite um aviso no log, mas h\u00e1 uma configura\u00e7\u00e3o \"panic_on_warn\" que permite, em caso de detec\u00e7\u00e3o de erro, colocar o n\u00facleo em um estado de falha (panic).<br \/>\n<br \/>Fonte: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=54671\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044f\u0434\u0440\u0430 Linux 5.12 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 KFence (Kernel Electric Fence), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u0432\u044b\u0445\u043e\u0434 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0444\u0435\u0440\u043e\u0432, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0441\u043b\u0435 \u043e\u0441\u0432\u043e\u0431\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u0448\u0438\u0431\u043a\u0438 \u043f\u043e\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0441\u0430. \u041f\u043e\u0434\u043e\u0431\u043d\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0443\u0436\u0435 \u043f\u0440\u0438\u0441\u0443\u0442\u0441\u0442\u0432\u043e\u0432\u0430\u043b\u0430 \u0432 \u044f\u0434\u0440\u0435 \u0432 \u0432\u0438\u0434\u0435 \u043e\u043f\u0446\u0438\u0438 \u0441\u0431\u043e\u0440\u043a\u0438 KASAN (kernel address sanitizer, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 Address Sanitizer \u0432 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 gcc [&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-99293","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044f\u0434\u0440\u0430 Linux 5.12 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 KFence (Kernel Electric Fence), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u0432\u044b\u0445\u043e\u0434 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0444\u0435\u0440\u043e\u0432, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0441\u043b\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\/pt\/blog\/news\/v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"pt_PT\" \/>\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\u043e Linux 5.12 \u043f\u0440\u0438\u043d\u044f\u0442\u0430 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 KFence \u0434\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044f\u0434\u0440\u0430 Linux 5.12 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 KFence (Kernel Electric Fence), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u0432\u044b\u0445\u043e\u0434 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0444\u0435\u0440\u043e\u0432, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0441\u043b\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pt\/blog\/news\/v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu\" \/>\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=\"2021-02-28T08:22:45+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2021-02-28T08:22:45+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\udd47A subsistema KFence foi integrado ao n\u00facleo Linux 5.12 para detectar erros no gerenciamento de mem\u00f3ria | ProHoster","description":"A vers\u00e3o em desenvolvimento do n\u00facleo Linux 5.12 inclui a implementa\u00e7\u00e3o do mecanismo KFence (Kernel Electric Fence), que verifica o uso da mem\u00f3ria, capturando sa\u00eddas dos limites dos buffers e acessos \u00e0 mem\u00f3ria subsequente.","canonical_url":"https:\/\/prohoster.info\/pt\/blog\/news\/v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pt_PT","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\u043e Linux 5.12 \u043f\u0440\u0438\u043d\u044f\u0442\u0430 \u043f\u043e\u0434\u0441\u0438\u0441\u0442\u0435\u043c\u0430 KFence \u0434\u043b\u044f \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u043f\u0440\u0438 \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e | ProHoster","og:description":"\u0412 \u0441\u043e\u0441\u0442\u0430\u0432 \u043d\u0430\u0445\u043e\u0434\u044f\u0449\u0435\u0433\u043e\u0441\u044f \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u044f\u0434\u0440\u0430 Linux 5.12 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0430 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c\u0430 KFence (Kernel Electric Fence), \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 \u043f\u0430\u043c\u044f\u0442\u044c\u044e, \u043e\u0442\u043b\u0430\u0432\u043b\u0438\u0432\u0430\u044f \u0432\u044b\u0445\u043e\u0434 \u0437\u0430 \u0433\u0440\u0430\u043d\u0438\u0446\u044b \u0431\u0443\u0444\u0435\u0440\u043e\u0432, \u043e\u0431\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u043a \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u043e\u0441\u043b\u0435.","og:url":"https:\/\/prohoster.info\/pt\/blog\/news\/v-yadro-linux-5-12-prinyata-podsistema-kfence-dlya-vyyavleniya-oshibok-pri-rabote-s-pamyatyu","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":"2021-02-28T08:22:45+00:00","article:modified_time":"2021-02-28T08:22:45+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"99293","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":[],"defaultGraph":"","defaultPostTypeGraph":""},"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":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 09:53:11","updated":"2022-09-27 14:10:01","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/99293","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/comments?post=99293"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/posts\/99293\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/media?parent=99293"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/categories?post=99293"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pt\/wp-json\/wp\/v2\/tags?post=99293"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}