public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Con Kolivas <kernel@kolivas.org>
To: Nick Piggin <piggin@cyberone.com.au>
Cc: linux-kernel@vger.kernel.org
Subject: Re: 2.6.0-test2-mm3 osdl-aim-7 regression
Date: Thu, 7 Aug 2003 15:41:06 +1000	[thread overview]
Message-ID: <200308071541.06091.kernel@kolivas.org> (raw)
In-Reply-To: <3F31DF98.6020908@cyberone.com.au>

On Thu, 7 Aug 2003 15:11, Nick Piggin wrote:
> What is the need for this round robining? Don't processes get a calculated
> timeslice anyway?

Nice to see you taking an unhealthy interest in the scheduler tweaks Nick. 
This issue has been discussed before but it never hurts to review things. 
I've uncc'ed the rest of the people in case we get carried away again. First 
let me show you Ingo's comment in the relevant code section:

		 * Prevent a too long timeslice allowing a task to monopolize
		 * the CPU. We do this by splitting up the timeslice into
		 * smaller pieces.
		 *
		 * Note: this does not mean the task's timeslices expire or
		 * get lost in any way, they just might be preempted by
		 * another task of equal priority. (one with higher
		 * priority would have preempted this task already.) We
		 * requeue this task to the end of the list on this priority
		 * level, which is in essence a round-robin of tasks with
		 * equal priority.

I was gonna say second blah blah but I think the first paragraph explains the 
issue. 

Must we do this? No. 

Should we? Probably. 

How frequently should we do it? Once again I'll quote Ingo who said it's a 
difficult question to answer. 

The more frequently you round robin the lower the scheduler latency between 
SCHED_OTHER tasks of the same priority. However, the longer the timeslice the 
more benefit you get from cpu cache. Where is the sweet spot? Depends on the 
hardware and your usage requirements of course, but Ingo has empirically 
chosen 25ms after 50ms seemed too long. Basically cache trashing becomes a 
real problem with timeslices below ~7ms on modern hardware in my limited 
testing. A minor quirk in Ingo's original code means _occasionally_ a task 
will be requeued with <3ms to go. It will be interesting to see if fixing 
this (which O12.2+ does) makes a big difference or whether we need to 
reconsider how frequently (if at all) we round robin tasks.  

Con


  reply	other threads:[~2003-08-07  5:37 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-04 16:07 2.6.0-test2-mm3 osdl-aim-7 regression Cliff White
2003-08-06  5:23 ` Andrew Morton
2003-08-06 19:10   ` Cliff White
2003-08-07  2:40     ` Con Kolivas
2003-08-07  5:11       ` Nick Piggin
2003-08-07  5:41         ` Con Kolivas [this message]
2003-08-07  8:25           ` Nick Piggin
2003-08-07 10:01             ` Con Kolivas
2003-08-07 10:05               ` Nick Piggin
2003-08-08 20:58       ` Cliff White

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=200308071541.06091.kernel@kolivas.org \
    --to=kernel@kolivas.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=piggin@cyberone.com.au \
    /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