kernel - Fix several bugs in FAIRQ
authorMatthew Dillon <dillon@apollo.backplane.com>
Thu, 6 Jun 2013 06:52:02 +0000 (23:52 -0700)
committerMatthew Dillon <dillon@apollo.backplane.com>
Thu, 6 Jun 2013 06:52:02 +0000 (23:52 -0700)
commit630fbdc52126e70cf437022128e1b1db429697ce
tree8170489ab94a101790cb6da89b3af0c9533b7a37
parentbc8ce7f2b44f4f0f7ce9068d721c389f157bbb40
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.
sys/net/altq/altq_fairq.c
sys/net/altq/altq_fairq.h