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