drain IPI FIFO

Bin Ren bin.ren at gmail.com
Tue Aug 31 03:40:06 PDT 2004


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





More information about the Kernel mailing list