Date: Wed, 21 Mar 2007 17:25:15 +0000 (UTC) From: Oleg Bulyzhin <oleg@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/netinet ip_dummynet.c Message-ID: <200703211725.l2LHPFY0066175@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200703211725.l2LHPFY0066175>