TODO.smpnet revision 1.1
11.1Sozaki$NetBSD: TODO.smpnet,v 1.1 2017/01/24 09:05:27 ozaki-r Exp $ 21.1Sozaki 31.1SozakiNon MP-safe components 41.1Sozaki====================== 51.1Sozaki 61.1Sozaki - bpf 71.1Sozaki - To be listed more... 81.1Sozaki 91.1Sozakibpf 101.1Sozaki=== 111.1Sozaki 121.1SozakiMP-ification of bpf requires all of bpf_mtap* are called in normal LWP context 131.1Sozakior softint context, i.e., not in hardware interrupt context. For Tx, all 141.1Sozakibpf_mtap satisfy the requrement. For Rx, most of bpf_mtap are called in softint. 151.1SozakiUnfortunately some bpf_mtap on Rx are still called in hardware interrupt context. 161.1Sozaki 171.1SozakiThis is the list of the functions that have such bpf_mtap: 181.1Sozaki 191.1Sozaki - sca_frame_process() @ sys/dev/ic/hd64570.c 201.1Sozaki - en_intr() @ sys/dev/ic/midway.c 211.1Sozaki - rxintr_cleanup() and txintr_cleanup() @ sys/dev/pci/if_lmc.c 221.1Sozaki - ipr_rx_data_rdy() @ sys/netisdn/i4b_ipr.c 231.1Sozaki 241.1SozakiIdeally we should make the functions run in softint somehow, but we don't have 251.1Sozakiactual devices, no time (or interest/love) to work on the task, so instead we 261.1Sozakiprovide a deferred bpf_mtap mechanism that forcibly runs bpf_mtap in softint 271.1Sozakicontext. It's a workaround and once the functions run in softint, we should use 281.1Sozakithe original bpf_mtap again. 29