Multiple netgraph threads
Hans Petter Selasky
hselasky at c2i.net
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 freebsd.org". Subject "timeout/callout small step forward".
On Sunday 30 March 2008, Alexander Motin wrote:
> 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: http://people.freebsd.org/~mav/netgraph.threads.patch
More information about the freebsd-hackers