<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:SimSun;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:"\@SimSun";
panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
p.MsoDate, li.MsoDate, div.MsoDate
{mso-style-priority:99;
mso-style-link:"Date Char";
margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:#0563C1;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:#954F72;
text-decoration:underline;}
pre
{mso-style-priority:99;
mso-style-link:"HTML Preformatted Char";
margin:0in;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Courier New";}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri",sans-serif;
color:windowtext;}
span.HTMLPreformattedChar
{mso-style-name:"HTML Preformatted Char";
mso-style-priority:99;
mso-style-link:"HTML Preformatted";
font-family:"Courier New";}
span.DateChar
{mso-style-name:"Date Char";
mso-style-priority:99;
mso-style-link:Date;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif">Changed the data into plain text.
<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Hi all,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">We have more data based on LLVM test suite and SPEC2017. It covered the performance, code size and build time. It collected the performance of the SW mitigation on
the servers w/o MCU and with MCU, the prefix padding and nop padding, the padding to jcc+fused+jmp and the padding to all types of branches. I expect the data can help us to move forward and make decision.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">For the code size of Chrome, Firefox, or Safari, we don't have data on hand. We are willing to work with community to get those data.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Below is the LLVM test suite we measured including the performance, code size and build time.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">The data indicates some performance effect (1.7%) from the microcode update, which was reduced to 0.5% with the SW mitigation of prefix padding. The code size increase
in test suite is ~0.5%. And the compile time increase is ~2%.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Comparing with hw_sw_prefix and hw_sw_nop, the exec_time difference is within -0.5%~0.5%, which may be a within the margin of error.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Comparing with hw_sw_prefix and hw_sw_prefix_align_all, the exec_time difference is even less at 0.1%.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Given that LLVM test-suite is a relatively small benchmark, we do not conclude which padding is preferable, hw_sw_prefix, hw_sw_nop or hw_sw_prefix_align_all.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif;color:black">Table 1 - test suite result data<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif">LLVM test-suite Baseline sw_prefix sw_nop sw_prefix_align_ hw hw_sw_prefix hw_sw_nop hw_sw_prefix_ali<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif"> compile_time 0.276 0.282 0.277 0.282 0.276 0.282 0.277 0.282<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif"> exec_time 286.465 285.017 287.125 285.696 291.294 287.766 285.027 288.2<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif"> code_size 3.868 3.889 3.888 3.895 3.868 3.889 3.888 3.895<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<pre><span style="font-family:"Arial",sans-serif;color:black">Table 2 - normalized test suite result data<o:p></o:p></span></pre>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif">LLVM test-suite Baseline sw_prefix sw_nop sw_prefix_align_ hw hw_sw_prefix hw_sw_nop hw_sw_prefix_ali<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif"> compile_time 1.000 1.021 1.005 1.022 1.000 1.021 1.005 1.022<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif"> exec_time 1.000 0.995 1.002 0.997 1.017 1.005 0.995 1.006<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif"> code_size 1.000 1.005 1.005 1.007 1.000 1.005 1.005 1.007<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<pre><span style="font-family:"Arial",sans-serif;color:black">Test date:<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black"> 2019/11/25<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">System Configuration:<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">Platform: Intel Internal Reference Validation Platform<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">OS: Red Hat* 8.0 x86_64<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">Memory: 192 GB<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">CPUCount: 2<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">CoreCount: 40<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">Intel HyperThreading: yes<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">CPU Model: Intel(r) Xeon(r) Gold 6148 CPU @ 2.40GHz<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">Microcode w/o microcode update: 0x200005e<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">Microcode with microcode update: 0x2000063<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">Compiler options:<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black"> ***sw_prefix: -x86-branches-within-32B-boundaries<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black"> ***sw_nop: -x86-align-branch-boundary=32 -x86-align-branch-prefix-size=0 -x86-align-branch=fused+jcc+jmp<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black"> ***sw_prefix_align_all: -x86-align-branch-boundary=32 -x86-align-branch-prefix-size=5 -x86-align-branch=fused+jcc+jmp+indirect+call+ret<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">Notes:<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">1. Baseline means the system w/o microcode update and w/o SW mitigation.<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">2. sw_prefix means SW mitigation of prefix padding is applied to a system w/o microcode update.<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">3. sw_nop means SW mitigation of nop padding is applied to a system w/o microcode update.<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">4. sw_prefix_align_all means SW mitigation of prefix padding is applied to all impacted branches including call, ret and indirect jump, to a system w/o microcode update.<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">5. hw means the microcode update is applied w/o SW mitigation.<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">6. hw_sw_prefix means both microcode update and SW mitigation of prefix padding are applied.<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">7. hw_sw_nop means both microcode update and SW mitigation of nop padding are applied.<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">8. hw_sw_prefix_align_all means microcode update is applied, and SW mitigation of prefix padding is applied to all impacted branches including call, ret and indirect jump.<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">9. The data in 2nd table is normalized as the ratio vs. baseline (i.e. baseline =1, so the smaller the better).<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">10. The test was built with an engineering LLVM compiler plus the SW mitigation patch. The performance data may be variant from build to build.<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">11. The tested Microcode 0x2000063 is an engineering version with microcode update. The production version 0x2000064 and above contain the microcode update.<o:p></o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black"><o:p> </o:p></span></pre>
<pre><span style="font-family:"Arial",sans-serif;color:black">For more complete information about performance and benchmark results, visit www.intel.com/benchmarks<<a href="http://www.intel.com/benchmarks">http://www.intel.com/benchmarks</a>>. For specific information and notices/disclaimers regarding the Jump Conditional Code Erratum, visit <a href="https://www.intel.com/content/dam/support/us/en/documents/processors/mitigations-jump-conditional-code-erratum.pdf.">https://www.intel.com/content/dam/support/us/en/documents/processors/mitigations-jump-conditional-code-erratum.pdf.</a><o:p></o:p></span></pre>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
</div>
</body>
</html>