From owner-cvs-all@FreeBSD.ORG Wed Mar 21 17:25:16 2007 Return-Path: X-Original-To: cvs-all@FreeBSD.org Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 129D316A525; Wed, 21 Mar 2007 17:25:16 +0000 (UTC) (envelope-from oleg@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id F3F4E13C56B; Wed, 21 Mar 2007 17:25:15 +0000 (UTC) (envelope-from oleg@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l2LHPFfD066176; Wed, 21 Mar 2007 17:25:15 GMT (envelope-from oleg@repoman.freebsd.org) Received: (from oleg@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l2LHPFY0066175; Wed, 21 Mar 2007 17:25:15 GMT (envelope-from oleg) Message-Id: <200703211725.l2LHPFY0066175@repoman.freebsd.org> From: Oleg Bulyzhin Date: Wed, 21 Mar 2007 17:25:15 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: RELENG_6 Cc: Subject: cvs commit: src/sys/netinet ip_dummynet.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 21 Mar 2007 17:25:16 -0000 oleg 2007-03-21 17:25:15 UTC FreeBSD src repository Modified files: (Branch: RELENG_6) sys/netinet ip_dummynet.c Log: MFC rev. 1.102-1.105 - style(9) cleanup - Use separate thread for servicing dummynet(4). Utilize taskqueue(9) API. - Convert net.inet.ip.dummynet.curr_time net.inet.ip.dummynet.searches net.inet.ip.dummynet.search_steps to SYSCTL_LONG nodes. It will prevent frequent wrap around on 64bit archs. - Implement simple mechanics for dummynet(4) internal time correction. Under certain circumstances (system high load, dummynet lock contention, etc) dummynet's tick counter can be significantly slower than it should be. (I've observed up to 25% difference on one of my production servers). Since this counter used for packet scheduling, it's accuracy is vital for precise bandwidth limitation. Introduce new sysctl nodes: net.inet.ip.dummynet. tick_lost - number of ticks coalesced by taskqueue thread. tick_adjustment - number of time corrections done. tick_diff - adjusted vs non-adjusted tick counter difference tick_delta - last vs 'standard' tick differnece (usec). tick_delta_sum - accumulated (and not corrected yet) time difference (usec). - Use non-recursive mutex. MTX_RECURSE is unnecessary since rev. 1.70 - Pay respect to net.isr.direct: use netisr_dispatch() instead of ip_input() - purge_flow_set(): Do not leak memory while purging queues which are not bound to pipe. Revision Changes Path 1.93.2.6 +481 -375 src/sys/netinet/ip_dummynet.c