DragonFly kernel List (threaded) for 2004-08
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
Re: drain IPI FIFO
: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@xxxxxxxxxxxxx>
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]