Change net.isr.direct from defaulting to 0 to 1 in 7-CURRENT. This
enables direct dispatch of the network stack from the device driver ithread, enabling input path parallelism by default when multiple interfaces are present. The strategy for network stack parallelism is something being actively discussed, and this is just one of several possible (and perfectly reasonable) strategies, but has the distinct advantage of reducing the number of context switches and preemptions significantly, resulting in higher efficiency in many cases. In some caes, this may reduce network stack parallelism due to work not being deferred from the ithread to the netisr. Therefore, the strategy may change in the future, but this offers a reasonable first pass and enabling parallelism while maintaining strong ordering. Hopefully this will trigger lots of nice new bugs. This change is not intended for MFC.
This commit is contained in:
parent
6f54e82927
commit
1f87450e8b
@ -201,7 +201,7 @@ static struct isrstat isrstat;
|
||||
|
||||
SYSCTL_NODE(_net, OID_AUTO, isr, CTLFLAG_RW, 0, "netisr counters");
|
||||
|
||||
static int netisr_direct = 0;
|
||||
static int netisr_direct = 1;
|
||||
SYSCTL_INT(_net_isr, OID_AUTO, direct, CTLFLAG_RW,
|
||||
&netisr_direct, 0, "enable direct dispatch");
|
||||
TUNABLE_INT("net.isr.direct", &netisr_direct);
|
||||
|
Loading…
Reference in New Issue
Block a user