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