From owner-freebsd-net@FreeBSD.ORG Tue Dec 1 23:33:48 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 826581065692 for ; Tue, 1 Dec 2009 23:33:48 +0000 (UTC) (envelope-from brett@lariat.net) Received: from lariat.net (lariat.net [66.119.58.2]) by mx1.freebsd.org (Postfix) with ESMTP id 1CFA18FC12 for ; Tue, 1 Dec 2009 23:33:47 +0000 (UTC) Received: from anne-o1dpaayth1.lariat.net (IDENT:ppp1000.lariat.net@lariat.net [66.119.58.2]) by lariat.net (8.9.3/8.9.3) with ESMTP id QAA16055; Tue, 1 Dec 2009 16:33:42 -0700 (MST) Message-Id: <200912012333.QAA16055@lariat.net> X-Mailer: QUALCOMM Windows Eudora Version 7.1.0.9 Date: Tue, 01 Dec 2009 16:33:25 -0700 To: Julian Elischer From: Brett Glass In-Reply-To: <4B1580E2.4080006@elischer.org> References: <200912011952.MAA12927@lariat.net> <4B1580E2.4080006@elischer.org> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; format=flowed 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: Tue, 01 Dec 2009 23:33:48 -0000 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?