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