Re: RSDL v0.28 for 2.6.20

Willy Tarreau
2007-03-10T19:11:39Z

On Sat, Mar 10, 2007 at 01:09:35PM -0500, Stephen Clark wrote:
> Con Kolivas wrote:
>
> >Here is an update for RSDL to version 0.28
> >
> >Full patch:
> >http://ck.kolivas.org/patches/staircase-deadline/2.6.20-sched-rsdl-0.28.patch
> >
> >Series:
> >http://ck.kolivas.org/patches/staircase-deadline/2.6.20/
> >
> >The patch to get you from 0.26 to 0.28:
> >http://ck.kolivas.org/patches/staircase-deadline/2.6.20/sched-rsdl-0.26-0.28.patch
> >
> >A similar patch and directories will be made for 2.6.21-rc3 without
> >further announcement
> >
> >
> >
> doesn't apply against 2.6.20.2:
>
> patch -p1 <~/2.6.20-sched-rsdl-0.28.patch --dry-run
> patching file include/linux/list.h
> patching file fs/proc/array.c
> patching file fs/pipe.c
> patching file include/linux/sched.h
> patching file include/asm-generic/bitops/sched.h
> patching file include/asm-s390/bitops.h
> patching file kernel/sched.c
> Hunk #41 FAILED at 3531.
> 1 out of 62 hunks FAILED -- saving rejects to file kernel/sched.c.rej
> patching file include/linux/init_task.h
> patching file Documentation/sched-design.txt

It is easier to apply 2.6.20.2 on top of 2.6.20+RSDL. The .2 patch
is a one-liner that you can easily fix by hand, and I'm not even
certain that it is still required :

--- ./kernel/sched.c.orig 2007-03-10 13:03:51 +0100
+++ ./kernel/sched.c 2007-03-10 13:08:02 +0100
@@ -3544,7 +3544,7 @@
next = list_entry(queue->next, struct task_struct, run_list);
}

- if (dependent_sleeper(cpu, rq, next))
+ if (rq->nr_running == 1 && dependent_sleeper(cpu, rq, next))
next = rq->idle;
switch_tasks:
if (next == rq->idle)

BTW, Con, I think that you should base your work on 2.6.20.[23] and not
2.6.20 next time, due to this conflict. It will get wider adoption.

Regards,
Willy