NetBSD/sys/arch/mips
ozaki-r 9c4cd06355 Introduce softint-based if_input
This change intends to run the whole network stack in softint context
(or normal LWP), not hardware interrupt context. Note that the work is
still incomplete by this change; to that end, we also have to softint-ify
if_link_state_change (and bpf) which can still run in hardware interrupt.

This change softint-ifies at ifp->if_input that is called from
each device driver (and ieee80211_input) to ensure Layer 2 runs
in softint (e.g., ether_input and bridge_input). To this end,
we provide a framework (called percpuq) that utlizes softint(9)
and percpu ifqueues. With this patch, rxintr of most drivers just
queues received packets and schedules a softint, and the softint
dequeues packets and does rest packet processing.

To minimize changes to each driver, percpuq is allocated in struct
ifnet for now and that is initialized by default (in if_attach).
We probably have to move percpuq to softc of each driver, but it's
future work. At this point, only wm(4) has percpuq in its softc
as a reference implementation.

Additional information including performance numbers can be found
in the thread at tech-kern@ and tech-net@:
http://mail-index.netbsd.org/tech-kern/2016/01/14/msg019997.html

Acknowledgment: riastradh@ greatly helped this work.
Thank you very much!
2016-02-09 08:32:07 +00:00
..
adm5120 Introduce softint-based if_input 2016-02-09 08:32:07 +00:00
alchemy Introduce softint-based if_input 2016-02-09 08:32:07 +00:00
atheros Introduce softint-based if_input 2016-02-09 08:32:07 +00:00
bonito PCI Extended Configuration stuff written by nonaka@: 2015-10-02 05:22:49 +00:00
cavium Introduce softint-based if_input 2016-02-09 08:32:07 +00:00
cfe merge ktrace-lwp. 2005-12-11 12:16:03 +00:00
conf add a driver for the chip's EFUSE interface, use it to find the MAC address 2015-10-08 17:54:30 +00:00
include use namespace protected types. 2016-01-24 16:13:19 +00:00
ingenic properly initialize the EHCI 2016-01-02 16:50:52 +00:00
mips We never exec(2) with a kernel vmspace, so do not test for that, but instead 2015-11-26 13:15:34 +00:00
pci Add a common version of this for those port which use the generic mips 2011-07-09 15:57:39 +00:00
pmon Cleanup includes 2015-06-26 22:32:23 +00:00
ralink Introduce softint-based if_input 2016-02-09 08:32:07 +00:00
rmi PCI Extended Configuration stuff written by nonaka@: 2015-10-02 05:22:49 +00:00
sibyte Introduce softint-based if_input 2016-02-09 08:32:07 +00:00
Makefile No need to dig into mips/conf since mips/conf/Makefile has been removed. 2008-11-27 10:18:08 +00:00
Makefile.inc Fix target 'tags'. 2011-04-04 19:44:16 +00:00