Diff for /wikisrc/users/msaitoh/Comparison_of_implementations_of_Ethernet_drivers.mdwn between versions 1.2 and 1.6

version 1.2, 2015/02/05 04:51:58 version 1.6, 2015/10/27 07:15:35
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)</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>
   <td>TX_LOCK(spin mutex) + sc_stopping flag</td>    <td>TX_LOCK(spin mutex) + sc_stopping flag</td>
   <td>CORE_LOCK(spin mutex)+sc_stopping flag</td>    <td>CORE_LOCK(spin mutex)+sc_stopping flag</td>
   <td>use CORE_LOCK() and TX_LOCK() partially</td>    <td>use CORE_LOCK(spin mutex) and TX_LOCK(spin mutex) partially</td>
   <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>RX only</td>
   <td></td>    <td></td>
 </tr>  </tr>
 <tr>  <tr>
Line 32 Line 36
   <td>not taken?</td>    <td>not taken?</td>
   <td>TX_LOCK(mutex)+sc_stopping check</td>    <td>TX_LOCK(mutex)+sc_stopping check</td>
   <td>TX, RX + sc_stopping check</td>    <td>TX, RX + sc_stopping check</td>
   <td>splnet</td>    <td>splnet()</td>
   <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>bcm53xx_eth</th>
Line 76 Line 86
   <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>

Removed from v.1.2  
changed lines
  Added in v.1.6


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