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