cvs commit: src/sys/netinet ip_dummynet.c

Oleg Bulyzhin oleg at
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 
  MFC rev. 1.102-1.105
  - style(9) cleanup
  - Use separate thread for servicing dummynet(4).
    Utilize taskqueue(9) API.
  - Convert
    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:
      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 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  +481 -375  src/sys/netinet/ip_dummynet.c

More information about the cvs-src mailing list