<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:x="urn:schemas-microsoft-com:office:excel" 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:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"\@SimSun";
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:"Intel Clear";
        panose-1:2 11 6 4 2 2 3 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {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;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.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;}
/* List Definitions */
@list l0
        {mso-list-id:14767505;
        mso-list-template-ids:-1578342624;}
@list l0:level1
        {mso-level-tab-stop:.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level2
        {mso-level-tab-stop:1.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level3
        {mso-level-tab-stop:1.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level4
        {mso-level-tab-stop:2.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level5
        {mso-level-tab-stop:2.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level6
        {mso-level-tab-stop:3.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level7
        {mso-level-tab-stop:3.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level8
        {mso-level-tab-stop:4.0in;
        mso-level-number-position:left;
        text-indent:-.25in;}
@list l0:level9
        {mso-level-tab-stop:4.5in;
        mso-level-number-position:left;
        text-indent:-.25in;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></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">Hi all,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">I’d like to discuss about the LLVM SW mitigation to Jump Conditional Code Erratum in this mailing thread. The patch was submitted in phabricator
<a href="https://reviews.llvm.org/D70157">https://reviews.llvm.org/D70157</a>. There were many review comments about its performance/code size impact, and some suggestions how to make the patches more generic to apply to other scenarios.
<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Let’s start from the performance/code size/build time impact. Below is the data we got from the test suite.<o:p></o:p></p>
<table class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0" width="460" style="width:344.75pt;border-collapse:collapse">
<tbody>
<tr style="height:26.5pt">
<td width="162" nowrap="" rowspan="2" style="width:121.8pt;background:white;padding:0in 5.4pt 0in 5.4pt;height:26.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">LLVM test-suite<o:p></o:p></span></p>
</td>
<td width="64" nowrap="" colspan="2" rowspan="2" style="width:48.25pt;padding:0in 5.4pt 0in 5.4pt;height:26.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">Baseline<o:p></o:p></span></p>
</td>
<td width="72" rowspan="2" style="width:54.25pt;padding:0in 5.4pt 0in 5.4pt;height:26.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">sw_prefix<o:p></o:p></span></p>
</td>
<td width="63" rowspan="2" style="width:47.1pt;padding:0in 5.4pt 0in 5.4pt;height:26.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">hw<o:p></o:p></span></p>
</td>
<td width="98" rowspan="2" style="width:73.35pt;padding:0in 5.4pt 0in 5.4pt;height:26.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">hw_sw_prefix<o:p></o:p></span></p>
</td>
<td style="height:26.5pt;border:none" width="0" height="53"></td>
</tr>
<tr style="height:14.5pt">
<td style="height:14.5pt;border:none" width="0" height="29"></td>
</tr>
<tr style="height:14.5pt">
<td width="162" nowrap="" style="width:121.8pt;background:white;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">compile_time<o:p></o:p></span></p>
</td>
<td width="64" nowrap="" colspan="2" style="width:48.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">0.276<o:p></o:p></span></p>
</td>
<td width="72" nowrap="" style="width:54.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">0.282<o:p></o:p></span></p>
</td>
<td width="63" nowrap="" style="width:47.1pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">0.276<o:p></o:p></span></p>
</td>
<td width="98" nowrap="" style="width:73.35pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">0.282<o:p></o:p></span></p>
</td>
<td style="height:14.5pt;border:none" width="0" height="29"></td>
</tr>
<tr style="height:14.5pt">
<td width="162" nowrap="" style="width:121.8pt;background:white;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">exec_time<o:p></o:p></span></p>
</td>
<td width="64" nowrap="" colspan="2" style="width:48.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">286.465<o:p></o:p></span></p>
</td>
<td width="72" nowrap="" style="width:54.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">285.017<o:p></o:p></span></p>
</td>
<td width="63" nowrap="" style="width:47.1pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">291.294<o:p></o:p></span></p>
</td>
<td width="98" nowrap="" style="width:73.35pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">287.766<o:p></o:p></span></p>
</td>
<td style="height:14.5pt;border:none" width="0" height="29"></td>
</tr>
<tr style="height:14.5pt">
<td width="162" nowrap="" style="width:121.8pt;background:white;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">code_size<o:p></o:p></span></p>
</td>
<td width="64" nowrap="" colspan="2" style="width:48.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">3.868<o:p></o:p></span></p>
</td>
<td width="72" nowrap="" style="width:54.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">3.889<o:p></o:p></span></p>
</td>
<td width="63" nowrap="" style="width:47.1pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">3.868<o:p></o:p></span></p>
</td>
<td width="98" nowrap="" style="width:73.35pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">3.889<o:p></o:p></span></p>
</td>
<td style="height:14.5pt;border:none" width="0" height="29"></td>
</tr>
<tr style="height:14.5pt">
<td width="162" nowrap="" valign="bottom" style="width:121.8pt;background:white;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman",serif;color:black"><o:p> </o:p></span></p>
</td>
<td width="64" nowrap="" colspan="2" valign="bottom" style="width:48.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Times New Roman",serif;color:black"><o:p> </o:p></span></p>
</td>
<td width="72" nowrap="" valign="bottom" style="width:54.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
</td>
<td width="63" nowrap="" valign="bottom" style="width:47.1pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
</td>
<td width="98" nowrap="" valign="bottom" style="width:73.35pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
</td>
<td style="height:14.5pt;border:none" width="0" height="29"></td>
</tr>
<tr style="height:26.5pt">
<td width="162" nowrap="" rowspan="2" style="width:121.8pt;background:white;padding:0in 5.4pt 0in 5.4pt;height:26.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">LLVM test-suite<o:p></o:p></span></p>
</td>
<td width="64" nowrap="" colspan="2" rowspan="2" style="width:48.25pt;padding:0in 5.4pt 0in 5.4pt;height:26.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">Baseline<o:p></o:p></span></p>
</td>
<td width="72" rowspan="2" style="width:54.25pt;padding:0in 5.4pt 0in 5.4pt;height:26.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">sw_prefix<o:p></o:p></span></p>
</td>
<td width="63" rowspan="2" style="width:47.1pt;padding:0in 5.4pt 0in 5.4pt;height:26.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">hw<o:p></o:p></span></p>
</td>
<td width="98" rowspan="2" style="width:73.35pt;padding:0in 5.4pt 0in 5.4pt;height:26.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">hw_sw_prefix<o:p></o:p></span></p>
</td>
<td style="height:26.5pt;border:none" width="0" height="53"></td>
</tr>
<tr style="height:14.5pt">
<td style="height:14.5pt;border:none" width="0" height="29"></td>
</tr>
<tr style="height:14.5pt">
<td width="162" nowrap="" style="width:121.8pt;background:white;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">compile_time<o:p></o:p></span></p>
</td>
<td width="64" nowrap="" colspan="2" style="width:48.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">1.000<o:p></o:p></span></p>
</td>
<td width="72" nowrap="" style="width:54.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">1.021<o:p></o:p></span></p>
</td>
<td width="63" nowrap="" style="width:47.1pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">1.000<o:p></o:p></span></p>
</td>
<td width="98" nowrap="" style="width:73.35pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">1.021<o:p></o:p></span></p>
</td>
<td style="height:14.5pt;border:none" width="0" height="29"></td>
</tr>
<tr style="height:14.5pt">
<td width="162" nowrap="" style="width:121.8pt;background:white;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">exec_time<o:p></o:p></span></p>
</td>
<td width="64" nowrap="" colspan="2" style="width:48.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">1.000<o:p></o:p></span></p>
</td>
<td width="72" nowrap="" style="width:54.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">0.995<o:p></o:p></span></p>
</td>
<td width="63" nowrap="" style="width:47.1pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">1.017<o:p></o:p></span></p>
</td>
<td width="98" nowrap="" style="width:73.35pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">1.005<o:p></o:p></span></p>
</td>
<td style="height:14.5pt;border:none" width="0" height="29"></td>
</tr>
<tr style="height:14.5pt">
<td width="162" nowrap="" style="width:121.8pt;background:white;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">code_size<o:p></o:p></span></p>
</td>
<td width="64" nowrap="" colspan="2" style="width:48.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">1.000<o:p></o:p></span></p>
</td>
<td width="72" nowrap="" style="width:54.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">1.005<o:p></o:p></span></p>
</td>
<td width="63" nowrap="" style="width:47.1pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">1.000<o:p></o:p></span></p>
</td>
<td width="98" nowrap="" style="width:73.35pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black">1.005<o:p></o:p></span></p>
</td>
<td style="height:14.5pt;border:none" width="0" height="29"></td>
</tr>
<tr style="height:14.5pt">
<td width="210" nowrap="" colspan="2" style="width:157.5pt;background:white;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">Test date:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB">              2019/11/25<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">System Configuration:<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:.5in"><span lang="EN-GB">OS: Red Hat* 8.0 x86_64<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span lang="EN-GB">Memory: 191 GB<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span lang="EN-GB">CPUCount: 2<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span lang="EN-GB">CoreCount: 40<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span lang="EN-GB">Intel HyperThreading: yes<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span lang="EN-GB">CPU Model: Intel(R) Xeon(R) Gold 6148 CPU @ 2.40GHz<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span lang="EN-GB">Microcode w/o hw mitigation: 0x200005e<o:p></o:p></span></p>
<p class="MsoNormal" style="margin-left:.5in"><span lang="EN-GB">Microcode with hw mitigation: 0x2000063<o:p></o:p></span></p>
<p class="MsoNormal"><span style="color:black"><o:p> </o:p></span></p>
</td>
<td width="17" nowrap="" style="width:12.55pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black"><o:p> </o:p></span></p>
</td>
<td width="72" nowrap="" style="width:54.25pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black"><o:p> </o:p></span></p>
</td>
<td width="63" nowrap="" style="width:47.1pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black"><o:p> </o:p></span></p>
</td>
<td width="98" nowrap="" style="width:73.35pt;padding:0in 5.4pt 0in 5.4pt;height:14.5pt">
<p class="MsoNormal" align="center" style="text-align:center"><span style="color:black"><o:p> </o:p></span></p>
</td>
<td style="height:14.5pt;border:none" width="0" height="29"></td>
</tr>
<tr height="0">
<td width="244" style="border:none"></td>
<td width="71" style="border:none"></td>
<td width="25" style="border:none"></td>
<td width="109" style="border:none"></td>
<td width="94" style="border:none"></td>
<td width="147" style="border:none"></td>
<td style="border:none" width="0">
<p class="MsoNormal"> </p>
</td>
</tr>
</tbody>
</table>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoNormal" style="mso-list:l0 level1 lfo1;vertical-align:baseline"><i>Baseline
</i>means the system w/o MCU mitigation and w/o SW mitigation.<i><o:p></o:p></i></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1;vertical-align:baseline"><i>SW_prefix
</i>means prefix mitigation is applied to a Non MCU system.<i><o:p></o:p></i></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1;vertical-align:baseline"><i>HW</i> means the MCU mitigation is applied w/o SW mitigation.<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1;vertical-align:baseline"><i>HW+SW</i> means both MCU and prefix mitigations are applied.<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1;vertical-align:baseline">The data in 2<sup>nd</sup> table is normalized as the ratio vs. baseline. The smaller the better.<o:p></o:p></li><li class="MsoNormal" style="mso-list:l0 level1 lfo1;vertical-align:baseline">The test is done on an engineering build plus the SW mitigation patch. It may be variant from build to build.  <o:p></o:p></li></ol>
<p class="MsoNormal" style="vertical-align:baseline"><o:p> </o:p></p>
<p class="MsoNormal" style="vertical-align:baseline">The data indicates that there’s some performance penalty (1.7%) in HW mitigation. And it reduced to 0.5% with prefix mitigated. The code size increase in test suite is about 0.5%. And the compile time increase
 is about 2%. <o:p></o:p></p>
<p class="MsoNormal" style="vertical-align:baseline"><o:p> </o:p></p>
<p class="MsoNormal" style="vertical-align:baseline">More data will follow. <o:p>
</o:p></p>
<p class="MsoNormal" style="vertical-align:baseline"><o:p> </o:p></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="EN-GB">Thanks,<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="EN-GB">Annita<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-GB" style="font-size:12.0pt;font-family:"Times New Roman",serif">For more complete information about performance and benchmark results, visit </span><span lang="EN-GB"><a href="http://www.intel.com/benchmarks"><span style="font-size:12.0pt;font-family:"Times New Roman",serif">www.intel.com/benchmarks</span></a></span><span lang="EN-GB" style="font-size:12.0pt;font-family:"Times New Roman",serif">.
  For specific information and notices/disclaimers regarding the Jump Conditional Code Erratum, visit </span><span lang="EN-GB"><a href="https://www.intel.com/content/dam/support/us/en/documents/processors/mitigations-jump-conditional-code-erratum.pdf"><span style="font-size:12.0pt;font-family:"Times New Roman",serif">https://www.intel.com/content/dam/support/us/en/documents/processors/mitigations-jump-conditional-code-erratum.pdf</span></a></span><span lang="EN-GB" style="font-size:12.0pt;font-family:"Times New Roman",serif">.<o:p></o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><span lang="EN-GB"><o:p> </o:p></span></p>
<p class="MsoNormal" style="vertical-align:baseline"><o:p> </o:p></p>
<p class="MsoNormal" style="vertical-align:baseline"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>