Multiple netgraph threads

Hans Petter Selasky hselasky at
Sun Mar 30 02:13:36 PDT 2008


Have you thought about nodes that lock the same mutex must be run on the same 
thread else for example one thread will run while another will just waits for 
a mutex ?

You can achieve this by grouping nodes into a tree, and the node at the top of 
the tree decides on which thread the nodes in the tree should be run.

How does your patch handle this ?

Also see recent discussion about multithreaded callouts 
on "freebsd-arch at". Subject "timeout/callout small step forward".


On Sunday 30 March 2008, Alexander Motin wrote:
> Hi.
> I have implemented a patch (for the HEAD) making netgraph to use several
> own threads for event queues processing instead of using single swinet.
> It should significantly improve netgraph SMP scalability on complicated
> workloads that require queueing by implementation (PPTP/L2TP) or stack
> size limitations. It works perfectly on my UP system, showing results
> close to original or even a bit better. I have no real SMP test server
> to measure real scalability, but test on HTT CPU works fine, utilizing
> both virtual cores at the predictable level.
> Reviews and feedbacks are welcome.
> URL:

More information about the freebsd-hackers mailing list