All of lore.kernel.org
 help / color / mirror / Atom feed
From: Con Kolivas <kernel@kolivas.org>
To: "Siddha, Suresh B" <suresh.b.siddha@intel.com>
Cc: linux kernel mailing list <linux-kernel@vger.kernel.org>,
	ck list <ck@vds.kolivas.org>
Subject: Re: RSDL v0.30 cpu scheduler for mainline kernels
Date: Thu, 15 Mar 2007 17:05:13 +1100	[thread overview]
Message-ID: <200703151705.13761.kernel@kolivas.org> (raw)
In-Reply-To: <20070315023102.GL30596@linux-os.sc.intel.com>

On Thursday 15 March 2007 13:31, Siddha, Suresh B wrote:
> Con,
>
> On Mon, Mar 12, 2007 at 10:58:11AM +1100, Con Kolivas wrote:
> > There are updated patches for 2.6.20, 2.6.20.2, 2.6.21-rc3 and
> > 2.6.21-rc3-mm2 to bring RSDL up to version 0.30 for download here:
>
> I tried this on a Core 2 Quad cpu system(system has 4 cores on a single
> package). When I run SPECjbb2000 with number of threads varying from 1-8,
> I see ~4.5% perf regression with RSDL (compared to native 2.6.21-rc3) in
> the 8 threads case. This I think, is coming from increased number of
> context switches, when we have more than one thread(at same user priority)
> on the same logical cpu.
>
> Just to see the % increase in number of context switches, I ran 8 infinite
> loops (simple while(1); 's) and with 2.6.21-rc3 I see ~70 context switches
> every second, whereas with RSDL I see ~530 context switches.

Thanks. If it's just that then scaling rr interval with cpus somewhat would
help. If you could, the following patch just to test might confirm that.

---
 kernel/sched.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6.21-rc3-mm2/kernel/sched.c
===================================================================
--- linux-2.6.21-rc3-mm2.orig/kernel/sched.c	2007-03-15 17:03:17.000000000 +1100
+++ linux-2.6.21-rc3-mm2/kernel/sched.c	2007-03-15 17:03:30.000000000 +1100
@@ -104,7 +104,7 @@ unsigned long long __attribute__((weak))
  * This is the time all tasks within the same priority round robin.
  * Set to a minimum of 6ms.
  */
-#define RR_INTERVAL		((6 * HZ / 1001) + 1)
+#define RR_INTERVAL		((12 * HZ / 1001) + 1)
 #define DEF_TIMESLICE		(RR_INTERVAL * 20)
 
 #ifdef CONFIG_SMP

-- 
-ck

  reply	other threads:[~2007-03-15  5:39 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-11 23:58 RSDL v0.30 cpu scheduler for mainline kernels Con Kolivas
2007-03-12 23:46 ` David Miller
2007-03-13  3:05   ` Con Kolivas
2007-03-13  4:32     ` Willy Tarreau
2007-03-13  5:03       ` [ck] " Felipe Alfaro Solana
2007-03-13  5:29       ` David Miller
2007-03-13 13:10       ` [ck] " michael chang
2007-03-13 15:35 ` [ck] " Ash Milsted
2007-03-13 15:46   ` Con Kolivas
2007-03-13 15:53   ` Lee Revell
2007-03-13 17:45     ` Chris Friesen
2007-03-13 20:02       ` Lee Revell
2007-03-14  9:47       ` Ash Milsted
2007-03-15  2:31 ` Siddha, Suresh B
2007-03-15  6:05   ` Con Kolivas [this message]
2007-03-15 17:46     ` Siddha, Suresh B
2007-03-15 18:58       ` Ray Lee
2007-03-15 21:11         ` Con Kolivas
2007-03-15 21:12         ` Siddha, Suresh B
2007-03-17 14:27 ` Szonyi Calin

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=200703151705.13761.kernel@kolivas.org \
    --to=kernel@kolivas.org \
    --cc=ck@vds.kolivas.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=suresh.b.siddha@intel.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.