public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Srivatsa Vaddagiri <vatsa@linux.vnet.ibm.com>
To: Mike Galbraith <efault@gmx.de>
Cc: Ingo Molnar <mingo@elte.hu>,
	Lukas Hejtmanek <xhejtman@ics.muni.cz>,
	mingo@redhat.com, linux-kernel@vger.kernel.org,
	a.p.zijlstra@chello.nl, dhaval@linux.vnet.ibm.com,
	aneesh.kumar@in.ibm.com
Subject: Re: 2.6.24-git4+ regression
Date: Mon, 18 Feb 2008 13:50:21 +0530	[thread overview]
Message-ID: <20080218082021.GD14419@linux.vnet.ibm.com> (raw)
In-Reply-To: <1203320304.26269.3.camel@homer.simson.net>

On Mon, Feb 18, 2008 at 08:38:24AM +0100, Mike Galbraith wrote:
> Here, it does not.  It seems fine without CONFIG_FAIR_GROUP_SCHED.

My hunch is its because of the vruntime driven preemption which shoots
up latencies (and the fact perhaps that Peter hasnt't focused more on SMP case
yet!).

Curiously, do you observe the same results when in UP mode (maxcpus=1)? 

> Oddity:  mainline git with Srivatsa's test patch improves markedly, and
> using sched_latency_ns and sched_wakeup_granularity_ns, I can tweak the

Lukas,
	Does tweaking these make any difference for you?

	# echo 10000000 > /proc/sys/kernel/sched_latency_ns
	# echo 10000000 > /proc/sys/kernel/sched_wakeup_granularity_ns

[or some other lower value]

> regression into submission.  With sched-devel, I cannot tweak it away
> with or without the test patch.  Dunno how useful that info is.

FWIW, my test patch I had sent earlier didnt address the needs of UP, as Peter 
pointed me out. In that direction, I had done more experimentation with the 
patch below, which seemed to improve UP latencies also. Note that I
don't particularly like the first hunk below, perhaps it needs to be
surrounded by an if(something) ..

---
 kernel/sched_fair.c |   12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

Index: current/kernel/sched_fair.c
===================================================================
--- current.orig/kernel/sched_fair.c
+++ current/kernel/sched_fair.c
@@ -523,8 +523,6 @@ place_entity(struct cfs_rq *cfs_rq, stru
 		if (sched_feat(NEW_FAIR_SLEEPERS))
 			vruntime -= sysctl_sched_latency;
 
-		/* ensure we never gain time by being placed backwards. */
-		vruntime = max_vruntime(se->vruntime, vruntime);
 	}
 
 	se->vruntime = vruntime;
@@ -816,6 +814,13 @@ hrtick_start_fair(struct rq *rq, struct 
 }
 #endif
 
+static inline void dequeue_stack(struct sched_entity *se)
+{
+	for_each_sched_entity(se)
+		if (se->on_rq)
+			dequeue_entity(cfs_rq_of(se), se, 0);
+}
+
 /*
  * The enqueue_task method is called before nr_running is
  * increased. Here we update the fair scheduling stats and
@@ -828,6 +833,9 @@ static void enqueue_task_fair(struct rq 
 			    *topse = NULL;	/* Highest schedulable entity */
 	int incload = 1;
 
+	if (wakeup)
+		dequeue_stack(se);
+
 	for_each_sched_entity(se) {
 		topse = se;
 		if (se->on_rq) {



P.S : Sorry about slow responses, since I am now in a different project :(

-- 
Regards,
vatsa

  reply	other threads:[~2008-02-18  8:10 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-01-30 13:56 2.6.24-git4+ regression Lukas Hejtmanek
2008-01-31 10:29 ` Ingo Molnar
2008-01-31 10:55   ` Lukas Hejtmanek
2008-02-04 11:17   ` Lukas Hejtmanek
2008-02-04 11:36     ` Peter Zijlstra
2008-02-04 14:36       ` Lukas Hejtmanek
2008-02-04 14:45         ` Peter Zijlstra
2008-02-04 17:00           ` Lukas Hejtmanek
2008-02-04 12:01     ` Ingo Molnar
2008-02-04 12:29       ` Lukas Hejtmanek
2008-02-04 13:04         ` Ingo Molnar
2008-02-04 13:49           ` Lukas Hejtmanek
2008-02-14 16:55 ` Srivatsa Vaddagiri
2008-02-17 20:26   ` Lukas Hejtmanek
2008-02-18  4:28     ` Ingo Molnar
2008-02-18  7:38       ` Mike Galbraith
2008-02-18  8:20         ` Srivatsa Vaddagiri [this message]
2008-02-18  8:36           ` Mike Galbraith
     [not found]             ` <1203325554.4889.2.camel@homer.simson.net>
     [not found]               ` <1203345102.5984.1.camel@homer.simson.net>
2008-02-19  8:15                 ` Mike Galbraith

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=20080218082021.GD14419@linux.vnet.ibm.com \
    --to=vatsa@linux.vnet.ibm.com \
    --cc=a.p.zijlstra@chello.nl \
    --cc=aneesh.kumar@in.ibm.com \
    --cc=dhaval@linux.vnet.ibm.com \
    --cc=efault@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=mingo@redhat.com \
    --cc=xhejtman@ics.muni.cz \
    /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