mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
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 }
 };
 

  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