Question regarding netgraph and threading

Brett Glass brett at lariat.net
Tue Dec 1 23:33:48 UTC 2009


At 01:47 PM 12/1/2009, Julian Elischer wrote:

>well, not all work is done by that thread. It is the
>backup-doer-of-things, but many netgraph operations are done in the
>context of a caller such as teh user of a socket.

In the case of a PPTP session, the data (ignoring the control session
for the moment) flows from the interface (as GRE packets) through PPP
(also implemented in netgraph) to an "ng" pseudo-interface, where it
enters the ordinary FreeBSD IP stack. There isn't a user process listening
on a socket anywhere in that path, so I assume that the netgraph
kernel thread has to handle all of the work of encryption, decryption,
handshaking, etc. Am I incorrect about this? I am concerned that the
performance of a single core will be the bottleneck.

--Brett Glass

P.S. -- By the way, when I compiled netgraph into the kernel to 
begin my test, I began to get the message

WARNING: attempt to domain_add(netgraph) after domainfinalize()

each time the system boots. Why? Does it have anything to do with 
the fact that I compiled netgraph itself in, but did not compile in 
all of the modules I might be using? 



More information about the freebsd-net mailing list