From owner-freebsd-net@FreeBSD.ORG Wed Dec 2 00:01:37 2009 Return-Path: Delivered-To: net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E3719106566C for ; Wed, 2 Dec 2009 00:01:37 +0000 (UTC) (envelope-from julian@elischer.org) Received: from outF.internet-mail-service.net (outf.internet-mail-service.net [216.240.47.229]) by mx1.freebsd.org (Postfix) with ESMTP id CC5778FC08 for ; Wed, 2 Dec 2009 00:01:37 +0000 (UTC) Received: from idiom.com (mx0.idiom.com [216.240.32.160]) by out.internet-mail-service.net (Postfix) with ESMTP id 70F4E39EC5; Tue, 1 Dec 2009 16:01:37 -0800 (PST) X-Client-Authorized: MaGic Cook1e X-Client-Authorized: MaGic Cook1e Received: from julian-mac.elischer.org (h-67-100-89-137.snfccasy.static.covad.net [67.100.89.137]) by idiom.com (Postfix) with ESMTP id 2286D2D6018; Tue, 1 Dec 2009 16:01:37 -0800 (PST) Message-ID: <4B15AE65.30604@elischer.org> Date: Tue, 01 Dec 2009 16:01:41 -0800 From: Julian Elischer User-Agent: Thunderbird 2.0.0.23 (Macintosh/20090812) MIME-Version: 1.0 To: Brett Glass References: <200912011952.MAA12927@lariat.net> <4B1580E2.4080006@elischer.org> <200912012333.QAA16055@lariat.net> In-Reply-To: <200912012333.QAA16055@lariat.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Cc: net@freebsd.org Subject: Re: Question regarding netgraph and threading X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Dec 2009 00:01:38 -0000 Brett Glass wrote: > 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. The work will be split between the sender of outgoing packets, the thread responding to the incoming packets from the interface and the netgraph threads. There was a patch to make more netgraph threads but I don't remember if it was checked in. > > --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() yes, it is known. we really cant domainfinalize() on a system where a protocol may be added later (like in a module). Luckily it doesn't matter in this case. "One day" someone will remove the printf. > > 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?