TODO.smpnet revision 1.2
1$NetBSD: TODO.smpnet,v 1.2 2017/02/10 03:59:02 ozaki-r Exp $ 2 3MP-safe components 4================== 5 6 - bridge(4) 7 - bpf(4) 8 - gif(4) 9 - npf(7) 10 - pfil(9) 11 - pppoe(4) 12 - if_spppsubr.c 13 - tun(4) 14 - vioif(4) 15 - vmx(4) 16 - wm(4) 17 18 - Layer 2 (only Ethernet) 19 - if_ethersubr.c 20 - Most Layer 3 21 22Non MP-safe components and kernel options 23========================================= 24 25 - agr(4) 26 - altq(4) 27 - carp(4) 28 - etherip(4) 29 - faith(4) 30 - gre(4) 31 - ieee80211(4) 32 - ipf(4) 33 - ipsec(4) 34 - kttcp(4) 35 - mpls(4) 36 - opencrypto(9) 37 - pf(4) 38 - ppp(4) 39 - sl(4) 40 - stf(4) 41 - strip(4) 42 - if_srt 43 - tap(4) 44 - vlan(4) 45 46 - netsmb 47 - netnatm 48 - netisbn 49 - netatalk 50 - netbt 51 - netkey 52 53 - if_arcsubr.c 54 - if_atmsubr.c 55 - if_ecosubr.c 56 - if_fddisubr.c 57 - if_hippisubr.c 58 - if_ieee1394subr.c 59 - if_tokensubr.c 60 61 - DCCP 62 - IGMP 63 - IPSELSRC 64 - MROUTING 65 - NFS 66 - PIM 67 - SCTP 68 - TCP 69 - UDP 70 71 - Layer 4 72 - IP multicast 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