Re: [patch 2.6.16-rc5-mm2] sched_cleanup-V17 - task throttling patch 1 of 2

Mike Galbraith
2006-03-04T05:19:10Z

On Sat, 2006-03-04 at 13:33 +1100, Peter Williams wrote:

> > include/linux/sched.h | 3 -
> > kernel/sched.c | 136 +++++++++++++++++++++++++++++---------------------
> > 2 files changed, 82 insertions(+), 57 deletions(-)
> >
> > --- linux-2.6.16-rc5-mm2/include/linux/sched.h.org 2006-03-01 15:06:22.000000000 +0100
> > +++ linux-2.6.16-rc5-mm2/include/linux/sched.h 2006-03-02 08:33:12.000000000 +0100
> > @@ -720,7 +720,8 @@
> >
> > unsigned long policy;
> > cpumask_t cpus_allowed;
> > - unsigned int time_slice, first_time_slice;
> > + int time_slice;
>
> Can you guarantee that int is big enough to hold a time slice in
> nanoseconds on all systems? I think that you'll need more than 16 bits.

Nope, that's a big fat bug.

I need to reconsider the nanosecond tracking a bit anyway. I was too
quick on the draw with the granularity change. It doesn't do what the
original does, and won't work at all when interrupts become tasks.

To do this properly, I need to maintain separate tick hit count (a.k.a.
time_slice;) and run_time. If I had slice_info in the first patch, I
could store granularity there and not have to add anything to the task
struct, but alas...

-Mike