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

Re: drain IPI FIFO


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 31 Aug 2004 17:01:31 -0700 (PDT)

: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]