Type of q_time (start of queue idle time) has changed: uint32_t -> uint64_t.

This should fix q_time overflow, which happens after 2^32/(86400*hz) days of
uptime (~50days for hz = 1000).
q_time overflow cause following:
- traffic shaping may not work in 'fast' mode (not enabled by default).
- incorrect average queue length calculation in RED/GRED algorithm.

NB: due to ABI change this change is not applicable to stable.

PR:		kern/128401
This commit is contained in:
Oleg Bulyzhin 2008-10-28 14:14:57 +00:00
parent 15bc6b2bd8
commit 02d09f7901
2 changed files with 4 additions and 1 deletions

View File

@ -22,6 +22,9 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 8.x IS SLOW:
to maximize performance. (To disable malloc debugging, run
ln -s aj /etc/malloc.conf.)
20081028:
dummynet(4) ABI has changed. ipfw(8) needs to be recompiled.
20081009:
The uhci, ohci, ehci and slhci USB Host controller drivers have
been put into separate modules. If you load the usb module

View File

@ -216,7 +216,7 @@ struct dn_flow_queue {
int avg ; /* average queue length est. (scaled) */
int count ; /* arrivals since last RED drop */
int random ; /* random value (scaled) */
u_int32_t q_time ; /* start of queue idle time */
dn_key q_time; /* start of queue idle time */
/* WF2Q+ support */
struct dn_flow_set *fs ; /* parent flow set */