Re: drain IPI FIFO

看板DFBSD_kernel作者時間21年前 (2004/09/01 08:33), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
:Hi, : :I'm reading the lwkt source codes. :In "lwkt_send_ipiq(globaldata_t target, ipifunc_t func, void *arg)", :there are these lines: : :while (ip->ip_windex - ip->ip_rindex > MAXCPUFIFO / 4) { :... :lwkt_process_ipiq(); :} : :and in " lwkt_process_ipiq()", there are: : : while (lwkt_process_ipiq1(&ip[gd->gd_cpuid], NULL)); : :To summarize, when the FIFO from CPU-A to CPU-B is almost full, A :starts to drain all the FIFO from other CPUs to itself? I would expect :B to drain the FIFO from A to B while A holds off a little while. : :Thanks, :Bin A has no control over when B drains the A->B fifo. All A can do is make sure that it doesn't deadlock trying to send a message to B if B happens to also be trying to send a message to A. -Matt Matthew Dillon <dillon@backplane.com>
文章代碼(AID): #11DHZJ00 (DFBSD_kernel)
文章代碼(AID): #11DHZJ00 (DFBSD_kernel)