<div dir="ltr"><span style="font-size:12.8px">&gt; Note that due to things like cache line misses, looking at the code will</span><br style="font-size:12.8px"><span style="font-size:12.8px">&gt; tell you almost nothing about which is *really* the &quot;best&quot; code...</span><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">I thought of counting number of instructions in disassembled code for each case. Since I&#39;m only replacing certain API&#39;s , rest of the code remains same. </span><br></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">For example </span><span style="color:rgb(0,0,0);font-family:&#39;Times New Roman&#39;;text-align:center"> </span></div><div><span style="color:rgb(0,0,0);font-family:&#39;Times New Roman&#39;;text-align:center">Replacing ACCESS_ONCE() API with READ_ONCE()</span></div><div><span style="color:rgb(0,0,0);font-family:&#39;Times New Roman&#39;;text-align:center"><br></span></div><div><span style="color:rgb(0,0,0);font-family:&#39;Times New Roman&#39;;text-align:center">Please correct me , if I&#39;m wrong.</span></div><div><span style="color:rgb(0,0,0);font-family:&#39;Times New Roman&#39;;text-align:center"><br></span></div><div><span style="font-size:12.8px">&gt; Why do you need to cross-compile?  Just build the drivers as x86_64.  Pretty</span><br style="font-size:12.8px"><span style="font-size:12.8px">&gt; much anybody who actually *cares* about performance has moved off 32-bit</span><br style="font-size:12.8px"><span style="font-size:12.8px">&gt; kernels a while ago (unless you&#39;re stuck with an embedded 32-bit CPU).</span><br></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">Earlier, whenever I run this command</span></div><div><span style="font-size:12.8px"><br></span></div><div><span style="font-size:12.8px">              $ make drivers/staging/rdma/</span></div><div><span style="font-size:12.8px">I was getting this error</span></div><div><span style="font-size:12.8px"><br></span></div><div><h1 itemprop="name" style="margin:0px 0px 0.5em;padding:0px;border:0px;font-size:22px;line-height:1.3;color:rgb(36,39,41);font-family:Arial,&#39;Helvetica Neue&#39;,Helvetica,sans-serif"><span style="font-weight:normal">CONFIG_X86_X32 enabled but no binutils support</span></h1></div><div>So, I thought to cross compile for x82. But now it seems i have solved by following<a href="http://stackoverflow.com/questions/12501124/errors-in-compiling-linux-kernel-module-config-x86-x32-enabled-but-no-binutils"> this </a></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Jun 7, 2016 at 3:16 AM,  <span dir="ltr">&lt;<a href="mailto:Valdis.Kletnieks@vt.edu" target="_blank">Valdis.Kletnieks@vt.edu</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Tue, 07 Jun 2016 02:27:03 +0530, Shyam Saini said:<br>
<br>
&gt; To choose best optimized code, i need to first compile them and then<br>
&gt; disassemble  the compiled code, where a change in single line would make a<br>
&gt; significant difference in the performance.<br>
<br>
</span>Note that due to things like cache line misses, looking at the code will<br>
tell you almost nothing about which is *really* the &quot;best&quot; code...<br>
<br>
&gt; So, my question is how to compile* x86 based network drivers  on x86_64<br>
&gt; Ubuntu machine*. Currently I&#39;m running Ubuntu 14.04.<br>
<br>
Why do you need to cross-compile?  Just build the drivers as x86_64.  Pretty<br>
much anybody who actually *cares* about performance has moved off 32-bit<br>
kernels a while ago (unless you&#39;re stuck with an embedded 32-bit CPU).<br>
</blockquote></div><br></div>