diff options
author | jeff <jeff@FreeBSD.org> | 2007-01-06 12:33:43 +0000 |
---|---|---|
committer | jeff <jeff@FreeBSD.org> | 2007-01-06 12:33:43 +0000 |
commit | 0f9511e94e1bdd0fd622e40dd0e76a48b4a972c9 (patch) | |
tree | 61ce702de61d061f6cfc68d82d99a103e6be0fe6 /sys/kern/sched_ule.c | |
parent | d2158e6c48f2f33afa00482c6cdfb84ae8d2d28c (diff) | |
download | FreeBSD-src-0f9511e94e1bdd0fd622e40dd0e76a48b4a972c9.zip FreeBSD-src-0f9511e94e1bdd0fd622e40dd0e76a48b4a972c9.tar.gz |
- Don't let SCHED_TICK_TOTAL() return less than hz. This can cause integer
divide faults in roundup() later if it is able to return 0. For some
reason this bug only shows up on my laptop and not my testboxes.
Diffstat (limited to 'sys/kern/sched_ule.c')
-rw-r--r-- | sys/kern/sched_ule.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c index 355cb9b..b96338a 100644 --- a/sys/kern/sched_ule.c +++ b/sys/kern/sched_ule.c @@ -110,7 +110,7 @@ static struct td_sched td_sched0; #define SCHED_TICK_MAX (SCHED_TICK_TARG + hz) #define SCHED_TICK_SHIFT 10 #define SCHED_TICK_HZ(ts) ((ts)->ts_ticks >> SCHED_TICK_SHIFT) -#define SCHED_TICK_TOTAL(ts) ((ts)->ts_ltick - (ts)->ts_ftick) +#define SCHED_TICK_TOTAL(ts) (max((ts)->ts_ltick - (ts)->ts_ftick, hz)) /* * These macros determine priorities for non-interactive threads. They are |