{"id":1468,"date":"2018-12-28T12:54:29","date_gmt":"2018-12-28T20:54:29","guid":{"rendered":"http:\/\/3.209.169.194\/blogs\/glenn\/?p=1468"},"modified":"2019-03-04T11:05:27","modified_gmt":"2019-03-04T19:05:27","slug":"how-to-check-if-your-processor-supports-second-level-address-translation-slat","status":"publish","type":"post","link":"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/","title":{"rendered":"How to Check if Your Processor Supports Second Level Address Translation (SLAT)"},"content":{"rendered":"<p><span style=\"font-size: small;\">If you want to run <a href=\"https:\/\/docs.docker.com\/docker-for-windows\/\">Docker for Windows<\/a>, you will need to be running one of these specific Windows 10 SKUs. These include Windows 10 Professional, Windows 10 Enterprise, <a href=\"https:\/\/www.microsoft.com\/en-us\/microsoft-365\/blog\/2017\/08\/10\/microsoft-announces-windows-10-pro-workstations\/\">Windows 10 Pro for Workstations<\/a>, or Windows 10 Education Edition. Since Docker for Windows requires Microsoft Hyper-V, you will also need a processor on your host machine that supports <a href=\"https:\/\/en.wikipedia.org\/wiki\/Second_Level_Address_Translation\">second level address translation (SLAT)<\/a> in <a href=\"https:\/\/docs.microsoft.com\/en-us\/windows-server\/virtualization\/hyper-v\/system-requirements-for-hyper-v-on-windows\">order to run Hyper-V<\/a>.\u00a0 You will also want\/need SLAT support for pretty much any other hypervisor that you may be using.<\/span><\/p>\n<h2>Modern Processors<\/h2>\n<p><span style=\"font-size: small;\">This should not be a problem in most cases, since nearly all systems that are running Windows 10 will have a new enough Intel or AMD processor so that SLAT support won\u2019t be an issue. For AMD, SLAT support, which they call Rapid Virtualization Indexing (RVI), was introduced in the <a href=\"https:\/\/www.realworldtech.com\/barcelona\/\">Barcelona microarchitecture<\/a> in late 2007. For Intel, SLAT support, which they call Extended Page Tables (EPT), was introduced with the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Westmere_(microarchitecture)\">Westmere microarchitecture<\/a> in early 2010.<\/span><\/p>\n<h2>Checking for SLAT Support<\/h2>\n<p><span style=\"font-size: small;\">If you want to actually check your system to confirm that you have SLAT support in your processor (before you install Hyper-V), here is how to do it:<\/span><\/p>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n<blockquote><p><span style=\"font-size: small;\">1. Download Coreinfo <a href=\"https:\/\/docs.microsoft.com\/en-us\/sysinternals\/downloads\/coreinfo\">from this link<\/a><\/span><\/p>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n<p><span style=\"font-size: small;\">2. Extract the zip file, and then copy the Coreinfo.exe file to the root of your C: drive<\/span><\/p>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n<p><span style=\"font-size: small;\">3. Open a command prompt as an administrator<\/span><\/p>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n<p><span style=\"font-size: small;\">4. Navigate to the root of your C: drive in the command prompt<\/span><\/p>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n<p><span style=\"font-size: small;\">5. Run this command: coreinfo \u2013v<\/span><\/p>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n<p><span style=\"font-size: small;\">6. The \u2013v switch shows virtualization-related features<\/span><\/p><\/blockquote>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n<p><span style=\"font-size: small;\">If you see an asterisk on the feature line, that means the processor supports that feature. If there is a dash on the feature line, the processor does not support that feature. You want to look at the EPT line for Intel or the NP line for AMD. This tells you whether your processor has second level address translation support.<\/span><\/p>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-content\/uploads\/2018\/12\/image.png\"><img fetchpriority=\"high\" decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"image\" src=\"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-content\/uploads\/2018\/12\/image_thumb.png\" alt=\"image\" width=\"1028\" height=\"399\" border=\"0\" \/><\/a><\/p>\n<p><span style=\"font-size: small;\"><strong>Figure 1: Results of Coreinfo \u2013v on an Intel Core i7-8700K Processor<\/strong><\/span><\/p>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n<p><span style=\"font-size: small;\">If you already have Hyper-V installed, you will get inaccurate results, as shown in Figure 2. Just to be clear, this AMD processor does have SLAT support, but the fact that Hyper-V is running gives the wrong results.<\/span><\/p>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n<p><a href=\"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-content\/uploads\/2018\/12\/image-1.png\"><img decoding=\"async\" style=\"display: inline; background-image: none;\" title=\"image\" src=\"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-content\/uploads\/2018\/12\/image_thumb-1.png\" alt=\"image\" width=\"1028\" height=\"555\" border=\"0\" \/><\/a><\/p>\n<p><span style=\"font-size: small;\"><strong>Figure 2: Results of Coreinfo \u2013v on an AMD Ryzen Threadripper 2950X Processor<\/strong><\/span><\/p>\n<h2><span style=\"font-size: small;\">\u00a0Conclusion<\/span><\/h2>\n<p>You must have second level address translation support in order to run Docker for Windows since that is a Hyper-V requirement. This is actually a good thing, since\u00a0<span style=\"display: inline !important; float: none; background-color: transparent; color: #191e23; cursor: text; font-family: 'Noto Serif'; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: left; text-decoration: none; text-indent: 0px; text-transform: none; -webkit-text-stroke-width: 0px; white-space: normal; word-spacing: 0px;\">second level address translation support<\/span> gives you better virtualization performance.<\/p>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n<p><span style=\"font-size: small;\">\u00a0<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>If you want to run Docker for Windows, you will need to be running one of these specific Windows 10 SKUs. These include Windows 10 Professional, Windows 10 Enterprise, Windows 10 Pro for Workstations, or Windows 10 Education Edition. Since Docker for Windows requires Microsoft Hyper-V, you will also need a processor on your host [&hellip;]<\/p>\n","protected":false},"author":7,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,409,17,20],"tags":[411,410],"class_list":["post-1468","post","type-post","status-publish","format-standard","hentry","category-amd","category-docker","category-sql-server-hardware","category-intel","tag-second-level-address-translation","tag-slat"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>How to Check if Your Processor Supports Second Level Address Translation (SLAT) - Glenn Berry<\/title>\n<meta name=\"description\" content=\"Glenn Berry describes how to check whether your processor supports second level address translation, which is vital for virtualization performance\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Check if Your Processor Supports Second Level Address Translation (SLAT) - Glenn Berry\" \/>\n<meta property=\"og:description\" content=\"Glenn Berry describes how to check whether your processor supports second level address translation, which is vital for virtualization performance\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/\" \/>\n<meta property=\"og:site_name\" content=\"Glenn Berry\" \/>\n<meta property=\"article:published_time\" content=\"2018-12-28T20:54:29+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-03-04T19:05:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-content\/uploads\/2018\/12\/image_thumb.png\" \/>\n<meta name=\"author\" content=\"Glenn Berry\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Glenn Berry\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/\",\"name\":\"How to Check if Your Processor Supports Second Level Address Translation (SLAT) - Glenn Berry\",\"isPartOf\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-content\/uploads\/2018\/12\/image_thumb.png\",\"datePublished\":\"2018-12-28T20:54:29+00:00\",\"dateModified\":\"2019-03-04T19:05:27+00:00\",\"author\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/#\/schema\/person\/57a8972435106bac7970692fcf5edfa7\"},\"description\":\"Glenn Berry describes how to check whether your processor supports second level address translation, which is vital for virtualization performance\",\"breadcrumb\":{\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/#primaryimage\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-content\/uploads\/2018\/12\/image_thumb.png\",\"contentUrl\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-content\/uploads\/2018\/12\/image_thumb.png\",\"width\":1028,\"height\":399},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Check if Your Processor Supports Second Level Address Translation (SLAT)\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/#website\",\"url\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/\",\"name\":\"Glenn Berry\",\"description\":\"Semi-random musings about SQL Server performance\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/#\/schema\/person\/57a8972435106bac7970692fcf5edfa7\",\"name\":\"Glenn Berry\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/64bdac8830f25f2f8cc780f8a1286c66ff1182218009271e7a953639596f7e25?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/64bdac8830f25f2f8cc780f8a1286c66ff1182218009271e7a953639596f7e25?s=96&d=mm&r=g\",\"caption\":\"Glenn Berry\"},\"sameAs\":[\"https:\/\/www.sqlskills.com\/blogs\/glenn\/\"],\"url\":\"https:\/\/www.sqlskills.com\/blogs\/glenn\/author\/glenn\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"How to Check if Your Processor Supports Second Level Address Translation (SLAT) - Glenn Berry","description":"Glenn Berry describes how to check whether your processor supports second level address translation, which is vital for virtualization performance","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/","og_locale":"en_US","og_type":"article","og_title":"How to Check if Your Processor Supports Second Level Address Translation (SLAT) - Glenn Berry","og_description":"Glenn Berry describes how to check whether your processor supports second level address translation, which is vital for virtualization performance","og_url":"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/","og_site_name":"Glenn Berry","article_published_time":"2018-12-28T20:54:29+00:00","article_modified_time":"2019-03-04T19:05:27+00:00","og_image":[{"url":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-content\/uploads\/2018\/12\/image_thumb.png","type":"","width":"","height":""}],"author":"Glenn Berry","twitter_misc":{"Written by":"Glenn Berry","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/","url":"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/","name":"How to Check if Your Processor Supports Second Level Address Translation (SLAT) - Glenn Berry","isPartOf":{"@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/#primaryimage"},"image":{"@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/#primaryimage"},"thumbnailUrl":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-content\/uploads\/2018\/12\/image_thumb.png","datePublished":"2018-12-28T20:54:29+00:00","dateModified":"2019-03-04T19:05:27+00:00","author":{"@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/#\/schema\/person\/57a8972435106bac7970692fcf5edfa7"},"description":"Glenn Berry describes how to check whether your processor supports second level address translation, which is vital for virtualization performance","breadcrumb":{"@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/#primaryimage","url":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-content\/uploads\/2018\/12\/image_thumb.png","contentUrl":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-content\/uploads\/2018\/12\/image_thumb.png","width":1028,"height":399},{"@type":"BreadcrumbList","@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/how-to-check-if-your-processor-supports-second-level-address-translation-slat\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.sqlskills.com\/blogs\/glenn\/"},{"@type":"ListItem","position":2,"name":"How to Check if Your Processor Supports Second Level Address Translation (SLAT)"}]},{"@type":"WebSite","@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/#website","url":"https:\/\/www.sqlskills.com\/blogs\/glenn\/","name":"Glenn Berry","description":"Semi-random musings about SQL Server performance","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.sqlskills.com\/blogs\/glenn\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/#\/schema\/person\/57a8972435106bac7970692fcf5edfa7","name":"Glenn Berry","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.sqlskills.com\/blogs\/glenn\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/64bdac8830f25f2f8cc780f8a1286c66ff1182218009271e7a953639596f7e25?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/64bdac8830f25f2f8cc780f8a1286c66ff1182218009271e7a953639596f7e25?s=96&d=mm&r=g","caption":"Glenn Berry"},"sameAs":["https:\/\/www.sqlskills.com\/blogs\/glenn\/"],"url":"https:\/\/www.sqlskills.com\/blogs\/glenn\/author\/glenn\/"}]}},"_links":{"self":[{"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/posts\/1468","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/users\/7"}],"replies":[{"embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/comments?post=1468"}],"version-history":[{"count":0,"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/posts\/1468\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/media?parent=1468"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/categories?post=1468"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.sqlskills.com\/blogs\/glenn\/wp-json\/wp\/v2\/tags?post=1468"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}