--- wikisrc/users/msaitoh/Comparison_of_implementations_of_Ethernet_drivers.mdwn 2015/02/05 05:13:21 1.4 +++ wikisrc/users/msaitoh/Comparison_of_implementations_of_Ethernet_drivers.mdwn 2015/10/27 07:15:35 1.6 @@ -1,7 +1,7 @@
driver | -where dmemem is allocated in | +where dmamem is allocated in | variations of mutex | if_init lock | if_start lock | @@ -10,10 +10,12 @@softint(9)based TX and RX? | TX and TX are locked with mutex | callout lock | +MSI / MSI-X support | +Multi-queue support | notes |
---|---|---|---|---|---|---|---|---|---|---|---|
wm(knakahara+ozaki-r) | +wm | in attach() | tx, rx, core | CORE_LOCK(spin mutex) | @@ -23,6 +25,8 @@No | TX and RX differently | TX_LOCK(mutex) and check sc_stopping in the beginning | +Yes | +RX only | ||
only RX is softint'ed | TX and RX differently | callout isn't used | +Yes (MSI-X only) | +No | |||||||
+ | + | ||||||||||
pq3etsec | @@ -63,6 +71,8 @@sc_hwlock is for hard interrput. sc_lock is for software interrupt. TX and RX use the same lock | mutex_enter(sc_lock) | + | + | |||||||
bcm53xx_eth | @@ -76,6 +86,8 @@sc_hwlock is for hard interrput. sc_lock is for software interrupt. TX and RX use the same lock | callout isn't used | + | + | |||||||
ixg | @@ -89,6 +101,8 @@TX and RX differently | CORE_LOCK() in the beginning | + | + | |||||||
bnx | @@ -102,6 +116,8 @@only TX uses mutex | splnet() in the beginning | + | + | |||||||
bge | @@ -114,6 +130,8 @@No | No | splnet() in the beginning | ++ | mutex is not used at all |