Index: sched_ule.c =================================================================== RCS file: /home/ncvs/src/sys/kern/sched_ule.c,v retrieving revision 1.173 diff -u -r1.173 sched_ule.c --- sched_ule.c 4 Jan 2007 12:16:19 -0000 1.173 +++ sched_ule.c 4 Jan 2007 21:59:06 -0000 @@ -1037,11 +1037,24 @@ ("sched_priority: invalid interactive priority %d", pri)); } else { pri = SCHED_PRI_MIN; - if (td->td_sched->ts_ticks) - pri += SCHED_PRI_TICKS(td->td_sched); + pri += SCHED_PRI_TICKS(td->td_sched); pri += SCHED_PRI_NICE(td->td_proc->p_nice); - KASSERT(pri >= PRI_MIN_TIMESHARE && pri <= PRI_MAX_TIMESHARE, - ("sched_priority: invalid priority %d", pri)); + if (!(pri >= PRI_MIN_TIMESHARE && pri <= PRI_MAX_TIMESHARE)) { + static int once = 1; + if (once) { + printf("sched_priority: invalid priority %d", + pri); + printf("nice %d, ticks %d ftick %d ltick %d tick pri %d\n", + td->td_proc->p_nice, + td->td_sched->ts_ticks, + td->td_sched->ts_ftick, + td->td_sched->ts_ltick, + SCHED_PRI_TICKS(td->td_sched)); + once = 0; + } + pri = min(max(pri, PRI_MIN_TIMESHARE), + PRI_MAX_TIMESHARE); + } } sched_user_prio(td, pri);