git: kernel - Fix several bugs in FAIRQ

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Jun 5 23:58:33 PDT 2013


commit 630fbdc52126e70cf437022128e1b1db429697ce
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Wed Jun 5 23:52:02 2013 -0700

    kernel - Fix several bugs in FAIRQ
    
    * Fix several possible overflows due to high-valued machclk_freq constants
      and uint's that should have been uint64's.  Among other things this fixes
      bandwidth calculations that could previously get into weird states.
    
    * Refactor the fairq_selectq() routine to fix numerous cases where the
      head of the queue could get advanced multiple times without pulling a
      packet off the queue, causing packets in queues to be excessively
      delayed.
    
    Both of these were rather serious issues.  Operation is far smoother with
    the bugs fixed.

Summary of changes:
 sys/net/altq/altq_fairq.c | 100 +++++++++++++++++++++++++++-------------------
 sys/net/altq/altq_fairq.h |  10 ++---
 2 files changed, 64 insertions(+), 46 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/630fbdc52126e70cf437022128e1b1db429697ce


-- 
DragonFly BSD source repository


More information about the Commits mailing list