TODO.smpnet revision 1.2
11.2Sozaki$NetBSD: TODO.smpnet,v 1.2 2017/02/10 03:59:02 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.2Sozaki 711.2Sozaki - Layer 4 721.2Sozaki - IP multicast 731.2Sozaki - Most network device drivers 741.2Sozaki 751.2SozakiKnow issues 761.2Sozaki=========== 771.1Sozaki 781.1Sozakibpf 791.2Sozaki--- 801.1Sozaki 811.1SozakiMP-ification of bpf requires all of bpf_mtap* are called in normal LWP context 821.1Sozakior softint context, i.e., not in hardware interrupt context. For Tx, all 831.1Sozakibpf_mtap satisfy the requrement. For Rx, most of bpf_mtap are called in softint. 841.1SozakiUnfortunately some bpf_mtap on Rx are still called in hardware interrupt context. 851.1Sozaki 861.1SozakiThis is the list of the functions that have such bpf_mtap: 871.1Sozaki 881.1Sozaki - sca_frame_process() @ sys/dev/ic/hd64570.c 891.1Sozaki - en_intr() @ sys/dev/ic/midway.c 901.1Sozaki - rxintr_cleanup() and txintr_cleanup() @ sys/dev/pci/if_lmc.c 911.1Sozaki - ipr_rx_data_rdy() @ sys/netisdn/i4b_ipr.c 921.1Sozaki 931.1SozakiIdeally we should make the functions run in softint somehow, but we don't have 941.1Sozakiactual devices, no time (or interest/love) to work on the task, so instead we 951.1Sozakiprovide a deferred bpf_mtap mechanism that forcibly runs bpf_mtap in softint 961.1Sozakicontext. It's a workaround and once the functions run in softint, we should use 971.1Sozakithe original bpf_mtap again. 98