Messages in this thread | | | Date | Sat, 11 Dec 2004 09:50:41 +0100 | From | Jens Axboe <> | Subject | Re: time slice cfq comments |
| |
On Sat, Dec 11 2004, Con Kolivas wrote: > Hi Jens > > Just thought I'd make a few comments about some of the code in your time > sliced cfq. > > + if (p->array) > + return min(cpu_curr(task_cpu(p))->time_slice, > + (unsigned int)MAX_SLEEP_AVG); > > MAX_SLEEP_AVG is basically 10 * the average time_slice so this will > always return task_cpu(p)->time_slice as the min value (except for the > race you described in your comments). What you probably want is > > + return min(cpu_curr(task_cpu(p))->time_slice, > + (unsigned int)DEF_TIMESLICE); > > > Further down you do: > + /* > + * for blocked tasks, return half of the average sleep time. > + * (because this is the average sleep-time we'll see if we > + * sample the period randomly.) > + */ > + return NS_TO_JIFFIES(p->sleep_avg) / 2; > > unfortunately p->sleep_avg is a non-linear value (weighted upwards > towards MAX_SLEEP_AVG). I suspect here you want > > + return NS_TO_JIFFIES(p->sleep_avg) / MAX_BONUS; > > I don't see any need for / 2.
Ingo donoted that code, perhaps he would like to comment?
-- Jens Axboe
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |