From: Con Kolivas <kernel@kolivas.org>
To: Mike Galbraith <efault@gmx.de>
Cc: Willy Tarreau <willy@w.ods.org>, Ingo Molnar <mingo@elte.hu>,
lkml <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@osdl.org>,
bugsplatter@gmail.com
Subject: Re: interactive task starvation
Date: Wed, 22 Mar 2006 02:20:10 +1100 [thread overview]
Message-ID: <200603220220.11368.kernel@kolivas.org> (raw)
In-Reply-To: <200603220117.54822.kernel@kolivas.org>
On Wednesday 22 March 2006 01:17, Con Kolivas wrote:
> I actually believe the same effect can be had by a tiny
> modification to enable/disable the estimator anyway.
Just for argument's sake it would look something like this.
Cheers,
Con
---
Add sysctl to enable/disable cpu scheduer interactivity estimator
Signed-off-by: Con Kolivas <kernel@kolivas.org>
---
include/linux/sched.h | 1 +
include/linux/sysctl.h | 1 +
kernel/sched.c | 14 +++++++++++---
kernel/sysctl.c | 8 ++++++++
4 files changed, 21 insertions(+), 3 deletions(-)
Index: linux-2.6.16-rc6-mm2/include/linux/sched.h
===================================================================
--- linux-2.6.16-rc6-mm2.orig/include/linux/sched.h 2006-03-19 11:15:27.000000000 +1100
+++ linux-2.6.16-rc6-mm2/include/linux/sched.h 2006-03-22 02:13:55.000000000 +1100
@@ -104,6 +104,7 @@ extern unsigned long nr_uninterruptible(
extern unsigned long nr_active(void);
extern unsigned long nr_iowait(void);
extern unsigned long weighted_cpuload(const int cpu);
+extern int sched_interactive;
#include <linux/time.h>
#include <linux/param.h>
Index: linux-2.6.16-rc6-mm2/include/linux/sysctl.h
===================================================================
--- linux-2.6.16-rc6-mm2.orig/include/linux/sysctl.h 2006-03-19 11:15:27.000000000 +1100
+++ linux-2.6.16-rc6-mm2/include/linux/sysctl.h 2006-03-22 02:14:43.000000000 +1100
@@ -148,6 +148,7 @@ enum
KERN_SPIN_RETRY=70, /* int: number of spinlock retries */
KERN_ACPI_VIDEO_FLAGS=71, /* int: flags for setting up video after ACPI sleep */
KERN_IA64_UNALIGNED=72, /* int: ia64 unaligned userland trap enable */
+ KERN_INTERACTIVE=73, /* int: enable/disable interactivity estimator */
};
Index: linux-2.6.16-rc6-mm2/kernel/sched.c
===================================================================
--- linux-2.6.16-rc6-mm2.orig/kernel/sched.c 2006-03-19 15:41:08.000000000 +1100
+++ linux-2.6.16-rc6-mm2/kernel/sched.c 2006-03-22 02:13:56.000000000 +1100
@@ -128,6 +128,9 @@
* too hard.
*/
+/* Sysctl enable/disable interactive estimator */
+int sched_interactive __read_mostly = 1;
+
#define CURRENT_BONUS(p) \
(NS_TO_JIFFIES((p)->sleep_avg) * MAX_BONUS / \
MAX_SLEEP_AVG)
@@ -151,7 +154,8 @@
INTERACTIVE_DELTA)
#define TASK_INTERACTIVE(p) \
- ((p)->prio <= (p)->static_prio - DELTA(p))
+ ((p)->prio <= (p)->static_prio - DELTA(p) && \
+ sched_interactive)
#define INTERACTIVE_SLEEP(p) \
(JIFFIES_TO_NS(MAX_SLEEP_AVG * \
@@ -662,9 +666,13 @@ static int effective_prio(task_t *p)
if (rt_task(p))
return p->prio;
- bonus = CURRENT_BONUS(p) - MAX_BONUS / 2;
+ prio = p->static_prio;
+
+ if (sched_interactive) {
+ bonus = CURRENT_BONUS(p) - MAX_BONUS / 2;
- prio = p->static_prio - bonus;
+ prio -= bonus;
+ }
if (prio < MAX_RT_PRIO)
prio = MAX_RT_PRIO;
if (prio > MAX_PRIO-1)
Index: linux-2.6.16-rc6-mm2/kernel/sysctl.c
===================================================================
--- linux-2.6.16-rc6-mm2.orig/kernel/sysctl.c 2006-03-19 11:15:27.000000000 +1100
+++ linux-2.6.16-rc6-mm2/kernel/sysctl.c 2006-03-22 02:15:23.000000000 +1100
@@ -684,6 +684,14 @@ static ctl_table kern_table[] = {
.proc_handler = &proc_dointvec,
},
#endif
+ {
+ .ctl_name = KERN_SCHED_INTERACTIVE,
+ .procname = "interactive",
+ .data = &sched_interactive,
+ .maxlen = sizeof (int),
+ .mode = 0644,
+ .proc_handler = &proc_dointvec,
+ },
{ .ctl_name = 0 }
};
next prev parent reply other threads:[~2006-03-21 15:20 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-03-07 23:13 [PATCH] mm: yield during swap prefetching Con Kolivas
2006-03-07 23:26 ` Andrew Morton
2006-03-07 23:32 ` Con Kolivas
2006-03-08 0:05 ` Andrew Morton
2006-03-08 0:51 ` Con Kolivas
2006-03-08 1:11 ` Andrew Morton
2006-03-08 1:12 ` Con Kolivas
2006-03-08 1:19 ` Con Kolivas
2006-03-08 1:23 ` Andrew Morton
2006-03-08 1:28 ` Con Kolivas
2006-03-08 2:08 ` Lee Revell
2006-03-08 2:12 ` Con Kolivas
2006-03-08 2:18 ` Lee Revell
2006-03-08 2:22 ` Con Kolivas
2006-03-08 2:27 ` Lee Revell
2006-03-08 2:30 ` Con Kolivas
2006-03-08 2:52 ` [ck] " André Goddard Rosa
2006-03-08 3:03 ` Lee Revell
2006-03-08 3:05 ` Con Kolivas
2006-03-08 21:07 ` Zan Lynx
2006-03-08 23:00 ` Con Kolivas
2006-03-08 23:48 ` Zan Lynx
2006-03-09 0:07 ` Con Kolivas
2006-03-09 3:13 ` Zan Lynx
2006-03-09 4:08 ` Con Kolivas
2006-03-09 4:54 ` Lee Revell
2006-03-08 7:51 ` Jan Knutar
2006-03-08 8:39 ` Con Kolivas
2006-03-09 8:57 ` Helge Hafting
2006-03-09 9:08 ` Con Kolivas
[not found] ` <4410AFD3.7090505@bigpond.net.au>
2006-03-10 9:01 ` [ck] " Andreas Mohr
2006-03-10 9:11 ` Con Kolivas
2006-03-08 22:24 ` Pavel Machek
2006-03-09 2:22 ` Nick Piggin
2006-03-09 2:30 ` Con Kolivas
2006-03-09 2:57 ` Nick Piggin
2006-03-09 9:11 ` Con Kolivas
2006-03-08 13:36 ` [ck] " Con Kolivas
2006-03-17 9:06 ` Ingo Molnar
2006-03-17 10:46 ` interactive task starvation Mike Galbraith
2006-03-17 17:15 ` Mike Galbraith
2006-03-20 7:09 ` Mike Galbraith
2006-03-20 10:22 ` Ingo Molnar
2006-03-21 6:47 ` Willy Tarreau
2006-03-21 7:51 ` Mike Galbraith
2006-03-21 9:13 ` Willy Tarreau
2006-03-21 9:14 ` Ingo Molnar
2006-03-21 11:15 ` Willy Tarreau
2006-03-21 11:18 ` Ingo Molnar
2006-03-21 11:53 ` Con Kolivas
2006-03-21 13:10 ` Mike Galbraith
2006-03-21 13:13 ` Con Kolivas
2006-03-21 13:33 ` Mike Galbraith
2006-03-21 13:37 ` Con Kolivas
2006-03-21 13:44 ` Willy Tarreau
2006-03-21 13:45 ` Con Kolivas
2006-03-21 14:01 ` Mike Galbraith
2006-03-21 14:17 ` Con Kolivas
2006-03-21 15:20 ` Con Kolivas [this message]
2006-03-21 17:50 ` Willy Tarreau
2006-03-22 4:18 ` Mike Galbraith
2006-03-21 17:51 ` Mike Galbraith
2006-03-21 13:38 ` Willy Tarreau
2006-03-21 13:48 ` Mike Galbraith
2006-03-21 12:07 ` Mike Galbraith
2006-03-21 12:59 ` Willy Tarreau
2006-03-21 13:24 ` Mike Galbraith
2006-03-21 13:53 ` Con Kolivas
2006-03-21 14:17 ` Mike Galbraith
2006-03-21 14:19 ` Con Kolivas
2006-03-21 14:25 ` Ingo Molnar
2006-03-21 14:28 ` Con Kolivas
2006-03-21 14:30 ` Ingo Molnar
2006-03-21 14:28 ` Mike Galbraith
2006-03-21 14:30 ` Con Kolivas
2006-03-21 14:32 ` Ingo Molnar
2006-03-21 14:44 ` Willy Tarreau
2006-03-21 14:52 ` Ingo Molnar
2006-03-29 3:01 ` Lee Revell
2006-03-29 5:56 ` Ray Lee
2006-03-29 6:16 ` Lee Revell
2006-03-21 14:36 ` Mike Galbraith
2006-03-21 14:39 ` Con Kolivas
2006-03-21 14:39 ` Willy Tarreau
2006-03-21 18:39 ` Rafael J. Wysocki
2006-03-21 19:32 ` Willy Tarreau
2006-03-21 21:47 ` Rafael J. Wysocki
2006-03-21 22:51 ` Peter Williams
2006-03-22 3:49 ` Mike Galbraith
2006-03-22 3:59 ` Peter Williams
2006-03-22 12:14 ` [interbench numbers] " Mike Galbraith
2006-03-22 20:27 ` Con Kolivas
2006-03-23 3:22 ` Mike Galbraith
2006-03-23 5:43 ` Con Kolivas
2006-03-23 5:53 ` Mike Galbraith
2006-03-23 11:07 ` Mike Galbraith
2006-03-24 0:21 ` Con Kolivas
2006-03-24 5:02 ` Mike Galbraith
2006-03-24 5:04 ` Con Kolivas
2006-03-17 12:38 ` [PATCH] sched: activate SCHED BATCH expired Con Kolivas
2006-03-17 13:07 ` Ingo Molnar
2006-03-17 13:26 ` Nick Piggin
2006-03-17 13:36 ` Con Kolivas
2006-03-17 13:46 ` Nick Piggin
2006-03-17 13:51 ` Nick Piggin
2006-03-17 14:11 ` Con Kolivas
2006-03-17 14:59 ` Ingo Molnar
2006-03-17 13:47 ` [ck] " Andreas Mohr
2006-03-17 13:59 ` Con Kolivas
2006-03-17 14:06 ` Nick Piggin
2006-03-08 8:48 ` [ck] Re: [PATCH] mm: yield during swap prefetching Andreas Mohr
2006-03-08 8:52 ` Con Kolivas
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200603220220.11368.kernel@kolivas.org \
--to=kernel@kolivas.org \
--cc=akpm@osdl.org \
--cc=bugsplatter@gmail.com \
--cc=efault@gmx.de \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=willy@w.ods.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome