cvs commit: src/sys/netinet ip_dummynet.c
Oleg Bulyzhin
oleg at FreeBSD.org
Wed Mar 21 17:25:16 UTC 2007
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
More information about the cvs-src
mailing list