/[pkg-src]/trunk/kernel26-alx/patches-2.6.20-r6/0002-2.6.20-sched-staircase17_interactive_tunable.patch |
Annotation of /trunk/kernel26-alx/patches-2.6.20-r6/0002-2.6.20-sched-staircase17_interactive_tunable.patch
Parent Directory | Revision Log
Revision 1175 -
(hide annotations)
(download)
Thu Oct 14 12:15:46 2010 UTC (13 years, 11 months ago) by niro
File size: 3719 byte(s)
Thu Oct 14 12:15:46 2010 UTC (13 years, 11 months ago) by niro
File size: 3719 byte(s)
-2.6.20-alx-r6 new magellan 0.5.2 kernel
1 | niro | 1175 | Add the interactive tunable for the staircase cpu scheduler. The default |
2 | behaviour is for nice value to determine cpu proportion only, and wakeup | ||
3 | latency is determined by the percentage of the cpu entitlement of a task. The | ||
4 | interactive tunable modifies this behaviour such that nice value determines | ||
5 | both cpu proportion and wakeup latency. | ||
6 | |||
7 | Signed-off-by: Con Kolivas <kernel@kolivas.org> | ||
8 | |||
9 | Documentation/sysctl/kernel.txt | 10 ++++++++++ | ||
10 | include/linux/sched.h | 1 + | ||
11 | kernel/sched.c | 8 +++++++- | ||
12 | kernel/sysctl.c | 8 ++++++++ | ||
13 | 4 files changed, 26 insertions(+), 1 deletion(-) | ||
14 | |||
15 | Index: linux-2.6.20-ck1/include/linux/sched.h | ||
16 | =================================================================== | ||
17 | --- linux-2.6.20-ck1.orig/include/linux/sched.h 2007-02-16 19:01:30.000000000 +1100 | ||
18 | +++ linux-2.6.20-ck1/include/linux/sched.h 2007-02-16 19:01:30.000000000 +1100 | ||
19 | @@ -216,6 +216,7 @@ extern void show_stack(struct task_struc | ||
20 | |||
21 | void io_schedule(void); | ||
22 | long io_schedule_timeout(long timeout); | ||
23 | +extern int sched_interactive; | ||
24 | |||
25 | extern void cpu_init (void); | ||
26 | extern void trap_init(void); | ||
27 | Index: linux-2.6.20-ck1/kernel/sysctl.c | ||
28 | =================================================================== | ||
29 | --- linux-2.6.20-ck1.orig/kernel/sysctl.c 2007-02-05 22:52:04.000000000 +1100 | ||
30 | +++ linux-2.6.20-ck1/kernel/sysctl.c 2007-02-16 19:01:30.000000000 +1100 | ||
31 | @@ -676,6 +676,14 @@ static ctl_table kern_table[] = { | ||
32 | .mode = 0444, | ||
33 | .proc_handler = &proc_dointvec, | ||
34 | }, | ||
35 | + { | ||
36 | + .ctl_name = CTL_UNNUMBERED, | ||
37 | + .procname = "interactive", | ||
38 | + .data = &sched_interactive, | ||
39 | + .maxlen = sizeof (int), | ||
40 | + .mode = 0644, | ||
41 | + .proc_handler = &proc_dointvec, | ||
42 | + }, | ||
43 | #if defined(CONFIG_X86_LOCAL_APIC) && defined(CONFIG_X86) | ||
44 | { | ||
45 | .ctl_name = KERN_UNKNOWN_NMI_PANIC, | ||
46 | Index: linux-2.6.20-ck1/kernel/sched.c | ||
47 | =================================================================== | ||
48 | --- linux-2.6.20-ck1.orig/kernel/sched.c 2007-02-16 19:01:30.000000000 +1100 | ||
49 | +++ linux-2.6.20-ck1/kernel/sched.c 2007-02-16 19:01:30.000000000 +1100 | ||
50 | @@ -61,6 +61,12 @@ | ||
51 | #include <asm/unistd.h> | ||
52 | |||
53 | /* | ||
54 | + * sched_interactive - sysctl which allows interactive tasks to have bonus | ||
55 | + * raise its priority. | ||
56 | + */ | ||
57 | +int sched_interactive __read_mostly = 1; | ||
58 | + | ||
59 | +/* | ||
60 | * Convert user-nice values [ -20 ... 0 ... 19 ] | ||
61 | * to static priority [ MAX_RT_PRIO..MAX_PRIO-1 ], | ||
62 | * and back. | ||
63 | @@ -867,7 +873,7 @@ static inline int __normal_prio(struct t | ||
64 | |||
65 | best_bonus = bonus(p); | ||
66 | prio = MAX_RT_PRIO + best_bonus; | ||
67 | - if (!batch_task(p)) | ||
68 | + if (sched_interactive && !batch_task(p)) | ||
69 | prio -= p->bonus; | ||
70 | |||
71 | rr = rr_interval(p); | ||
72 | Index: linux-2.6.20-ck1/Documentation/sysctl/kernel.txt | ||
73 | =================================================================== | ||
74 | --- linux-2.6.20-ck1.orig/Documentation/sysctl/kernel.txt 2007-02-05 22:51:59.000000000 +1100 | ||
75 | +++ linux-2.6.20-ck1/Documentation/sysctl/kernel.txt 2007-02-16 19:01:30.000000000 +1100 | ||
76 | @@ -25,6 +25,7 @@ show up in /proc/sys/kernel: | ||
77 | - domainname | ||
78 | - hostname | ||
79 | - hotplug | ||
80 | +- interactive | ||
81 | - java-appletviewer [ binfmt_java, obsolete ] | ||
82 | - java-interpreter [ binfmt_java, obsolete ] | ||
83 | - kstack_depth_to_print [ X86 only ] | ||
84 | @@ -164,6 +165,15 @@ Default value is "/sbin/hotplug". | ||
85 | |||
86 | ============================================================== | ||
87 | |||
88 | +interactive: | ||
89 | + | ||
90 | +This flag controls the allocation of dynamic priorities in the cpu | ||
91 | +scheduler. It gives low cpu using tasks high priority for lowest | ||
92 | +latencies. Nice value is still observed but stricter cpu proportions | ||
93 | +are obeyed if this tunable is disabled. Enabled by default. | ||
94 | + | ||
95 | +============================================================== | ||
96 | + | ||
97 | l2cr: (PPC only) | ||
98 | |||
99 | This flag controls the L2 cache of G3 processor boards. If |