--- wikisrc/users/msaitoh/Comparison_of_implementations_of_Ethernet_drivers.mdwn 2015/10/27 07:15:35 1.6
+++ wikisrc/users/msaitoh/Comparison_of_implementations_of_Ethernet_drivers.mdwn 2018/01/18 08:58:02 1.9
@@ -22,11 +22,11 @@
TX_LOCK(spin mutex) + sc_stopping flag |
CORE_LOCK(spin mutex)+sc_stopping flag |
use CORE_LOCK(spin mutex) and TX_LOCK(spin mutex) partially |
- No |
+ Yes |
TX and RX differently |
TX_LOCK(mutex) and check sc_stopping in the beginning |
Yes |
- RX only |
+ TX and RX |
|
@@ -75,14 +75,14 @@
|
- bcm53xx_eth |
+ bcmeth(4) |
in attach() |
lock, hwlock |
not taken? |
not taken. Set flag with atomic_or_uint() and call softintr_schedule() |
not taken? |
splnet() |
- Yes |
+ Yes. The interrupt handler calls softint or workqueue depending on the load. |
sc_hwlock is for hard interrput. sc_lock is for software interrupt. TX and RX use the same lock |
callout isn't used |
|