Diff for /wikisrc/users/msaitoh/Comparison_of_implementations_of_Ethernet_drivers.mdwn between versions 1.4 and 1.8

version 1.4, 2015/02/05 05:13:21 version 1.8, 2016/07/20 04:14:25
Line 1 Line 1
 <table class="center">  <table class="center">
 <tr>  <tr>
   <th>driver</th>    <th>driver</th>
   <th>where dmemem is allocated in</th>    <th>where dmamem is allocated in</th>
   <th>variations of mutex</th>    <th>variations of mutex</th>
   <th>if_init lock</th>    <th>if_init lock</th>
   <th>if_start lock</th>    <th>if_start lock</th>
Line 10 Line 10
   <th>softint(9)based TX and RX?</th>    <th>softint(9)based TX and RX?</th>
   <th>TX and TX are locked with mutex</th>    <th>TX and TX are locked with mutex</th>
   <th>callout lock</th>    <th>callout lock</th>
     <th>MSI / MSI-X support</th>
     <th>Multi-queue support</th>
   <th>notes</th>    <th>notes</th>
 </tr>  </tr>
 <tr>  <tr>
   <th>wm(knakahara+ozaki-r)</th>    <th>wm</th>
   <td>in attach()</td>    <td>in attach()</td>
   <td>tx, rx, core</td>    <td>tx, rx, core</td>
   <td>CORE_LOCK(spin mutex)</td>    <td>CORE_LOCK(spin mutex)</td>
Line 23 Line 25
   <td>No</td>    <td>No</td>
   <td>TX and RX differently</td>    <td>TX and RX differently</td>
   <td>TX_LOCK(mutex) and check sc_stopping in the beginning</td>    <td>TX_LOCK(mutex) and check sc_stopping in the beginning</td>
     <td>Yes</td>
     <td>TX and RX</td>
   <td></td>    <td></td>
 </tr>  </tr>
 <tr>  <tr>
Line 36 Line 40
   <td>only RX is softint'ed</td>    <td>only RX is softint'ed</td>
   <td>TX and RX differently</td>    <td>TX and RX differently</td>
   <td>callout isn't used</td>    <td>callout isn't used</td>
     <td>Yes (MSI-X only)</td>
     <td>No</td>
   <td></td>    <td></td>
 </tr>  </tr>
 <tr>  <tr>
Line 50 Line 56
   <td></td>    <td></td>
   <td></td>    <td></td>
   <td></td>    <td></td>
     <td></td>
     <td></td>
 </tr>  </tr>
 <tr>  <tr>
   <th>pq3etsec</th>    <th>pq3etsec</th>
Line 63 Line 71
   <td>sc_hwlock is for hard interrput. sc_lock is for software interrupt. TX and RX use the same lock</td>    <td>sc_hwlock is for hard interrput. sc_lock is for software interrupt. TX and RX use the same lock</td>
   <td>mutex_enter(sc_lock)</td>    <td>mutex_enter(sc_lock)</td>
   <td></td>    <td></td>
     <td></td>
     <td></td>
 </tr>  </tr>
 <tr>  <tr>
   <th>bcm53xx_eth</th>    <th>bcmeth(4)</th>
   <td>in attach()</td>    <td>in attach()</td>
   <td>lock, hwlock</td>    <td>lock, hwlock</td>
   <td>not taken?</td>    <td>not taken?</td>
   <td>not taken. Set flag with atomic_or_uint() and call softintr_schedule()</td>    <td>not taken. Set flag with atomic_or_uint() and call softintr_schedule()</td>
   <td>not taken?</td>    <td>not taken?</td>
   <td>splnet()</td>    <td>splnet()</td>
   <td>Yes</td>    <td>Yes. The interrupt handler calls softint or workqueue depending on the load.</td>
   <td>sc_hwlock is for hard interrput. sc_lock is for software interrupt. TX and RX use the same lock</td>    <td>sc_hwlock is for hard interrput. sc_lock is for software interrupt. TX and RX use the same lock</td>
   <td>callout isn't used</td>    <td>callout isn't used</td>
   <td></td>    <td></td>
     <td></td>
     <td></td>
 </tr>  </tr>
 <tr>  <tr>
   <th>ixg</th>    <th>ixg</th>
Line 89 Line 101
   <td>TX and RX differently</td>    <td>TX and RX differently</td>
   <td>CORE_LOCK() in the beginning</td>    <td>CORE_LOCK() in the beginning</td>
   <td></td>    <td></td>
     <td></td>
     <td></td>
 </tr>  </tr>
 <tr>  <tr>
   <th>bnx</th>    <th>bnx</th>
Line 102 Line 116
   <td>only TX uses mutex</td>    <td>only TX uses mutex</td>
   <td>splnet() in the beginning</td>    <td>splnet() in the beginning</td>
   <td></td>    <td></td>
     <td></td>
     <td></td>
 </tr>  </tr>
 <tr>  <tr>
   <th>bge</th>    <th>bge</th>
Line 114 Line 130
   <td>No</td>    <td>No</td>
   <td>No</td>    <td>No</td>
   <td>splnet() in the beginning</td>    <td>splnet() in the beginning</td>
     <td></td>
     <td></td>
   <td>mutex is not used at all</td>    <td>mutex is not used at all</td>
 </tr>  </tr>
 </table>  </table>

Removed from v.1.4  
changed lines
  Added in v.1.8


CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb