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