TODO.smpnet revision 1.4
11.4Sozaki$NetBSD: TODO.smpnet,v 1.4 2017/02/22 04:44:16 ozaki-r Exp $
21.1Sozaki
31.2SozakiMP-safe components
41.2Sozaki==================
51.1Sozaki
61.2Sozaki - bridge(4)
71.2Sozaki - bpf(4)
81.2Sozaki - gif(4)
91.4Sozaki - l2tp(4)
101.2Sozaki - npf(7)
111.2Sozaki - pfil(9)
121.2Sozaki - pppoe(4)
131.2Sozaki   - if_spppsubr.c
141.2Sozaki - tun(4)
151.2Sozaki - vioif(4)
161.2Sozaki - vmx(4)
171.2Sozaki - wm(4)
181.2Sozaki
191.2Sozaki - Layer 2 (only Ethernet)
201.2Sozaki   - if_ethersubr.c
211.2Sozaki - Most Layer 3
221.2Sozaki
231.2SozakiNon MP-safe components and kernel options
241.2Sozaki=========================================
251.2Sozaki
261.2Sozaki - agr(4)
271.2Sozaki - altq(4)
281.2Sozaki - carp(4)
291.2Sozaki - etherip(4)
301.2Sozaki - faith(4)
311.2Sozaki - gre(4)
321.2Sozaki - ieee80211(4)
331.2Sozaki - ipf(4)
341.2Sozaki - ipsec(4)
351.2Sozaki - kttcp(4)
361.2Sozaki - mpls(4)
371.2Sozaki - opencrypto(9)
381.2Sozaki - pf(4)
391.2Sozaki - ppp(4)
401.2Sozaki - sl(4)
411.2Sozaki - stf(4)
421.2Sozaki - strip(4)
431.2Sozaki - if_srt
441.2Sozaki - tap(4)
451.2Sozaki - vlan(4)
461.2Sozaki
471.2Sozaki - netsmb
481.2Sozaki - netnatm
491.2Sozaki - netisbn
501.2Sozaki - netatalk
511.2Sozaki - netbt
521.2Sozaki - netkey
531.2Sozaki
541.2Sozaki - if_arcsubr.c
551.2Sozaki - if_atmsubr.c
561.2Sozaki - if_ecosubr.c
571.2Sozaki - if_fddisubr.c
581.2Sozaki - if_hippisubr.c
591.2Sozaki - if_ieee1394subr.c
601.2Sozaki - if_tokensubr.c
611.2Sozaki
621.2Sozaki - DCCP
631.2Sozaki - IGMP
641.2Sozaki - IPSELSRC
651.2Sozaki - MROUTING
661.2Sozaki - NFS
671.2Sozaki - PIM
681.2Sozaki - SCTP
691.2Sozaki - TCP
701.2Sozaki - UDP
711.3Sozaki - BRIDGE_IPF
721.2Sozaki
731.2Sozaki - Layer 4
741.2Sozaki - IP multicast
751.2Sozaki - Most network device drivers
761.2Sozaki
771.2SozakiKnow issues
781.2Sozaki===========
791.1Sozaki
801.1Sozakibpf
811.2Sozaki---
821.1Sozaki
831.1SozakiMP-ification of bpf requires all of bpf_mtap* are called in normal LWP context
841.1Sozakior softint context, i.e., not in hardware interrupt context.  For Tx, all
851.1Sozakibpf_mtap satisfy the requrement.  For Rx, most of bpf_mtap are called in softint.
861.1SozakiUnfortunately some bpf_mtap on Rx are still called in hardware interrupt context.
871.1Sozaki
881.1SozakiThis is the list of the functions that have such bpf_mtap:
891.1Sozaki
901.1Sozaki - sca_frame_process() @ sys/dev/ic/hd64570.c
911.1Sozaki - en_intr() @ sys/dev/ic/midway.c
921.1Sozaki - rxintr_cleanup() and txintr_cleanup() @ sys/dev/pci/if_lmc.c
931.1Sozaki - ipr_rx_data_rdy() @ sys/netisdn/i4b_ipr.c
941.1Sozaki
951.1SozakiIdeally we should make the functions run in softint somehow, but we don't have
961.1Sozakiactual devices, no time (or interest/love) to work on the task, so instead we
971.1Sozakiprovide a deferred bpf_mtap mechanism that forcibly runs bpf_mtap in softint
981.1Sozakicontext.  It's a workaround and once the functions run in softint, we should use
991.1Sozakithe original bpf_mtap again.
100