TODO.smpnet revision 1.5
1$NetBSD: TODO.smpnet,v 1.5 2017/03/08 06:59:36 ozaki-r Exp $
2
3MP-safe components
4==================
5
6 - bridge(4)
7 - bpf(4)
8 - gif(4)
9 - l2tp(4)
10 - npf(7)
11 - pfil(9)
12 - pppoe(4)
13   - if_spppsubr.c
14 - tun(4)
15 - vioif(4)
16 - vmx(4)
17 - wm(4)
18
19 - Layer 2 (only Ethernet)
20   - if_ethersubr.c
21 - Most Layer 3
22
23Non MP-safe components and kernel options
24=========================================
25
26 - agr(4)
27 - altq(4)
28 - carp(4)
29 - etherip(4)
30 - faith(4)
31 - gre(4)
32 - ieee80211(4)
33 - ipf(4)
34 - ipsec(4)
35 - kttcp(4)
36 - mpls(4)
37 - opencrypto(9)
38 - pf(4)
39 - ppp(4)
40 - sl(4)
41 - stf(4)
42 - strip(4)
43 - if_srt
44 - tap(4)
45 - vlan(4)
46
47 - netsmb
48 - netnatm
49 - netisbn
50 - netatalk
51 - netbt
52 - netkey
53
54 - if_arcsubr.c
55 - if_atmsubr.c
56 - if_ecosubr.c
57 - if_fddisubr.c
58 - if_hippisubr.c
59 - if_ieee1394subr.c
60 - if_tokensubr.c
61
62 - DCCP
63 - IPSELSRC
64 - MROUTING
65 - NFS
66 - PIM
67 - SCTP
68 - TCP
69 - UDP
70 - BRIDGE_IPF
71
72 - Layer 4
73 - Most network device drivers
74
75Know issues
76===========
77
78bpf
79---
80
81MP-ification of bpf requires all of bpf_mtap* are called in normal LWP context
82or softint context, i.e., not in hardware interrupt context.  For Tx, all
83bpf_mtap satisfy the requrement.  For Rx, most of bpf_mtap are called in softint.
84Unfortunately some bpf_mtap on Rx are still called in hardware interrupt context.
85
86This is the list of the functions that have such bpf_mtap:
87
88 - sca_frame_process() @ sys/dev/ic/hd64570.c
89 - en_intr() @ sys/dev/ic/midway.c
90 - rxintr_cleanup() and txintr_cleanup() @ sys/dev/pci/if_lmc.c
91 - ipr_rx_data_rdy() @ sys/netisdn/i4b_ipr.c
92
93Ideally we should make the functions run in softint somehow, but we don't have
94actual devices, no time (or interest/love) to work on the task, so instead we
95provide a deferred bpf_mtap mechanism that forcibly runs bpf_mtap in softint
96context.  It's a workaround and once the functions run in softint, we should use
97the original bpf_mtap again.
98