DragonFly BSD
DragonFly kernel List (threaded) for 2004-08
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

drain IPI FIFO


From: Bin Ren <bin.ren@xxxxxxxxx>
Date: Tue, 31 Aug 2004 11:37:27 +0100

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



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]