<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>