From owner-cvs-all@FreeBSD.ORG Fri Apr 25 10:29:26 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E386A1065672; Fri, 25 Apr 2008 10:29:26 +0000 (UTC) (envelope-from oleg@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id BCB928FC15; Fri, 25 Apr 2008 10:29:26 +0000 (UTC) (envelope-from oleg@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m3PATQ6p014401; Fri, 25 Apr 2008 10:29:26 GMT (envelope-from oleg@repoman.freebsd.org) Received: (from oleg@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m3PATQZJ014400; Fri, 25 Apr 2008 10:29:26 GMT (envelope-from oleg) Message-Id: <200804251029.m3PATQZJ014400@repoman.freebsd.org> From: Oleg Bulyzhin Date: Fri, 25 Apr 2008 10:29:26 +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 ip_dummynet.h ip_fw_pfil.c src/sys/net if_bridge.c if_ethersubr.c src/sbin/ipfw ipfw.8 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: Fri, 25 Apr 2008 10:29:27 -0000 oleg 2008-04-25 10:29:26 UTC FreeBSD src repository Modified files: (Branch: RELENG_6) sys/netinet ip_dummynet.h ip_dummynet.c ip_fw_pfil.c sys/net if_bridge.c if_ethersubr.c sbin/ipfw ipfw.8 Log: MFC: src/sys/netinet/ip_dummynet.h 1.41 src/sys/netinet/ip_dummynet.c 1.111-1.114 src/sys/netinet/ip_fw_pfil.c 1.26 src/sys/net/if_bridge.c 1.107 src/sys/net/if_ethersubr.c 1.240 src/sbin/ipfw/ipfw.8 1.206 - style(9) cleanup. - dummynet_io() declaration has changed. - Alter packet flow inside dummynet and introduce 'fast' mode of dummynet operation: allow certain packets to bypass dummynet scheduler. Benefits are: -- lower latency: if packet flow does not exceed pipe bandwidth, packets will not be (up to tick) delayed (due to dummynet's scheduler granularity). -- lower overhead: if packet avoids dummynet scheduler it shouldn't reenter ip stack later. Such packets can be fastforwarded. -- recursion (which can lead to kernel stack exhaution) eliminated. This fix long existed panic, which can be triggered this way: kldload dummynet sysctl net.inet.ip.fw.one_pass=0 ipfw pipe 1 config bw 0 for i in `jot 30`; do ipfw add 1 pipe 1 icmp from any to any; done ping -c 1 localhost - New sysctl nodes: net.inet.ip.dummynet.io_fast - enables 'fast' dummynet io net.inet.ip.dummynet.io_pkt - packets passed to dummynet net.inet.ip.dummynet.io_pkt_fast - packets avoided dummynet scheduler net.inet.ip.dummynet.io_pkt_drop - packets dropped by dummynet - Workaround p->numbytes overflow, which can result in infinite loop inside dummynet module (prerequisite is using queues with "fat" pipe). PR: kern/113548 kern/121955 Revision Changes Path 1.175.2.15 +18 -0 src/sbin/ipfw/ipfw.8 1.11.2.55 +1 -1 src/sys/net/if_bridge.c 1.193.2.16 +1 -1 src/sys/net/if_ethersubr.c 1.93.2.7 +395 -337 src/sys/netinet/ip_dummynet.c 1.36.2.3 +1 -1 src/sys/netinet/ip_dummynet.h 1.19.2.4 +28 -26 src/sys/netinet/ip_fw_pfil.c