Re: Van Jacobson's net channels and real-time



Hi Jörn,

On Saturday, 22. April 2006 13:48, Jörn Engel wrote:
Unless I completely misunderstand something, one of the main points of
the netchannels if to have *zero* fields written to by both producer
and consumer.

Hmm, for me the main point was to keep the complete processing
of a single packet within one CPU/Core where this is a non-issue.

Receiving and sending a lot can be expected to be the
common case, so taking a performance hit in this case is hardly a good
idea.

There is no hit. If you receive/send in bursts you can simply aggregate
them until a certain queueing threshold.

The queue design outlined can split the queueing in reserve and commit stages,
where the producer can be told how much in can produce and the consumer is
told how much it can consume.

Within their areas the producer and consumer can freely move around.
So this is not exactly a queue, but a dynamic double buffer :-)

So maybe doing queueing with the classic head/tail variant is better here,
but the other variant might replace it without problems and allows
for some nice improvements.


Regards

Ingo Oeser
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: Multithreading - Problem with notifyAll() and wait()
    ... NotifyAlland waitstatements (producer notifies and consumer ... private Queue queue = new Queue; ... Vector vectorQueue = new Vector; ...
    (comp.lang.java.programmer)
  • Re: Gas prices up to pay for bosses
    ... kilter profits become the more competition intensified. ... of the producer ought to be attended to, only so far as it may be necessary ... for promoting that of the consumer. ...
    (uk.politics.misc)
  • Re: Is this group dying?
    ... consumer queue toward the dispatcher thread and a single-producer/ ... that producer has put a new "next" node in place. ... I want to implement the wait-free factory as a multi-threaded daemon process ...
    (comp.programming.threads)
  • Re: Make pipe data structure be a circular list of pages, rather
    ... The data producer can be passive ... the data consumer can be passive (consume data when provided ... This is what a Unix pipe is. ... Unix tradition is that user processes are active and the kernel (and ...
    (Linux-Kernel)
  • MPSC FIFO Queue w/o atomic_rmw/membars
    ... with plain store, no CAS, so node can get lost. ... Consumer remember last consumed node for every producer. ... void enqueue ...
    (comp.programming.threads)