<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic TLB Flushing in Intel® Software Guard Extensions (Intel® SGX)</title>
    <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/TLB-Flushing/m-p/1170865#M3194</link>
    <description>&lt;P&gt;Whenever EENTER instruction gets called, It flushes TLB entries for addresses in the enclave’s ELRANGE? Can someone please explain the reasoning behind this?&lt;/P&gt;</description>
    <pubDate>Fri, 24 Apr 2020 16:03:26 GMT</pubDate>
    <dc:creator>Kumar__Dixit</dc:creator>
    <dc:date>2020-04-24T16:03:26Z</dc:date>
    <item>
      <title>TLB Flushing</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/TLB-Flushing/m-p/1170865#M3194</link>
      <description>&lt;P&gt;Whenever EENTER instruction gets called, It flushes TLB entries for addresses in the enclave’s ELRANGE? Can someone please explain the reasoning behind this?&lt;/P&gt;</description>
      <pubDate>Fri, 24 Apr 2020 16:03:26 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/TLB-Flushing/m-p/1170865#M3194</guid>
      <dc:creator>Kumar__Dixit</dc:creator>
      <dc:date>2020-04-24T16:03:26Z</dc:date>
    </item>
    <item>
      <title>Hello Dixit,</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/TLB-Flushing/m-p/1170866#M3195</link>
      <description>&lt;P&gt;Hello Dixit,&lt;/P&gt;&lt;P&gt;The answer to your question can be very complex. I will keep it short here and refer you to the&amp;nbsp;paper,&amp;nbsp;&lt;A href="https://pdfs.semanticscholar.org/bc12/7b2228219f2b36b66bebe71a844e510e8efe.pdf?_ga=2.193154158.2121690579.1587766088-1371191746.1587766088"&gt;SGX Explained&lt;/A&gt;, for a more in-depth answer. The TLB gets flushed at every SGX context change, which includes EENTER, EEXIT, and ERESUME. One of the basic principles of SGX is that the host and system software are not trusted. However, under SGX, the operating system and hypervisor are still in full control of the pages tables and EPTs. Flushing the TLB between every context change, i.e. host to enclave, enclave to host, helps to mitigate address translation attacks. Please read the paper,&amp;nbsp;&lt;A href="https://pdfs.semanticscholar.org/bc12/7b2228219f2b36b66bebe71a844e510e8efe.pdf?_ga=2.193154158.2121690579.1587766088-1371191746.1587766088"&gt;SGX Explained&lt;/A&gt;, for a more in depth discussion on these attacks and how the SGX architecture and design aims to prevent them.&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Jesus&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Fri, 24 Apr 2020 23:58:31 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/TLB-Flushing/m-p/1170866#M3195</guid>
      <dc:creator>JesusG_Intel</dc:creator>
      <dc:date>2020-04-24T23:58:31Z</dc:date>
    </item>
    <item>
      <title>Thanks Jesus.</title>
      <link>https://community.intel.com/t5/Intel-Software-Guard-Extensions/TLB-Flushing/m-p/1170867#M3196</link>
      <description>&lt;P&gt;Thanks Jesus.&lt;BR /&gt;&lt;BR /&gt;I will surely look into above mentioned paper to understand more about address translation attacks and the importance of TLB flushing.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;&lt;BR /&gt;Dixit&lt;/P&gt;</description>
      <pubDate>Sat, 25 Apr 2020 11:23:36 GMT</pubDate>
      <guid>https://community.intel.com/t5/Intel-Software-Guard-Extensions/TLB-Flushing/m-p/1170867#M3196</guid>
      <dc:creator>Kumar__Dixit</dc:creator>
      <dc:date>2020-04-25T11:23:36Z</dc:date>
    </item>
  </channel>
</rss>

