Re: [patch] HT scheduler, sched-2.5.59-E2

Robert Love
2003-02-03T20:38:14Z

On Mon, 2003-02-03 at 13:23, Ingo Molnar wrote:

> the attached patch (against 2.5.59 or BK-curr) has two HT-scheduler fixes
> over the -D7 patch:

Hi, Ingo. I am running this now, with good results. Unfortunately I do
not have an HT-capable processor, so I am only testing the interactivity
improvements. They are looking very good - a step in the right
direction. Very nice.

A couple bits:

> - wake_up_interruptible(PIPE_WAIT(*inode));
> + wake_up_interruptible_sync(PIPE_WAIT(*inode));
> ...
> - wake_up_interruptible(PIPE_WAIT(*inode));
> + wake_up_interruptible_sync(PIPE_WAIT(*inode));
> ...
> - wake_up_interruptible(PIPE_WAIT(*inode));
> + wake_up_interruptible_sync(PIPE_WAIT(*inode));

These are not correct, right? I believe we want normal behavior here,
no?

> --- linux/kernel/sys.c.orig
> +++ linux/kernel/sys.c
> @@ -220,7 +220,7 @@
>
> if (error == -ESRCH)
> error = 0;
> - if (niceval < task_nice(p) && !capable(CAP_SYS_NICE))
> + if (0 && niceval < task_nice(p) && !capable(CAP_SYS_NICE))

What is the point of this? Left in for debugging?

> -#define MAX_SLEEP_AVG (2*HZ)
> -#define STARVATION_LIMIT (2*HZ)
> +#define MAX_SLEEP_AVG (10*HZ)
> +#define STARVATION_LIMIT (30*HZ)

Do you really want a 30 second starvation limit? Ouch.

> + printk("rq_idx(smp_processor_id()): %ld.\n", rq_idx(smp_processor_id()));

This gives a compiler warning on UP:

kernel/sched.c: In function `sched_init':
kernel/sched.c:2722: warning: long int format, int arg (arg 2)

Since rq_idx(), on UP, merely returns its parameter which is an int.

Otherwise, looking nice :)

Robert Love