linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Con Kolivas <kernel@kolivas.org>
To: Felipe Alfaro Solana <felipe_alfaro@linuxmail.org>
Cc: linux kernel mailing list <linux-kernel@vger.kernel.org>,
	Andrew Morton <akpm@osdl.org>,
	Daniel Phillips <phillips@arcor.de>,
	Mike Galbraith <efault@gmx.de>
Subject: Re: [PATCH] O5int for interactivity
Date: Tue, 15 Jul 2003 05:11:49 +1000	[thread overview]
Message-ID: <200307150511.49294.kernel@kolivas.org> (raw)
In-Reply-To: <1058196300.582.5.camel@teapot.felipe-alfaro.com>

On Tue, 15 Jul 2003 01:25, Felipe Alfaro Solana wrote:
> On Mon, 2003-07-14 at 14:32, Con Kolivas wrote:
> > More interactivity work for audio and X smoothness. I have fixed all my
> > test cases and need feedback about others to develop beyond this.
> >
> > Changes
> > The idle code now gives just under interactive state based on the runtime
> >  instead of min_sleep_avg - minor startup speed improvement.
> >
> > Tasks that drop their priority while running are now put to the end of
> > the queue to continue their timeslice. Fixes a little flutter when tasks
> > are cpu hogs for short periods (eg mozilla).
> >
> > Tasks that are complete cpu hogs are put on the expired array every time
> > they run out of timeslice.
>
> Hmmm... Starvation is back for me (Pentium III 700Mhz + ACPI):
>
> 1. Log on to X/KDE
> 2. Launch Konqueror
> 3. Launch XMMS
> 4. Make XMMS play a song
> 5. Move the Konqueror window all over the desktop.
>
> Step 5 causes XMMS to completely starve for exactly 5 seconds. After
> those 5 seconds, the XMMS priority gets adjusted and sound comes back
> from my speakers.
>
> Another way to starve XMMS for 5 seconds:
>
> 1. Launch XMMS
> 2. Make it play
> 3. Run a standard CPU hogger: "while true; do a=2; done"
>
> Step 3 will make XMMS starve for exactly 5 seconds. Also, during those 5
> seconds, X is completely jerky and moving the mouse makes the pointer
> goes jumping all over the screen.
>
> Do you want additional information? Any patch trying?
> Thanks!

Great thanks for test. Can you try reverting this:


diff -Naurp linux-2.5.75-mm1/kernel/sched.c linux-2.5.75-test/kernel/sched.c
--- linux-2.5.75-mm1/kernel/sched.c	2003-07-13 00:21:30.000000000 +1000
+++ linux-2.5.75-test/kernel/sched.c	2003-07-14 22:13:51.000000000 +1000
@@ -388,19 +388,19 @@ static inline void __activate_task(task_
 static inline void activate_task(task_t *p, runqueue_t *rq)
 {
 	long sleep_time = jiffies - p->last_run - 1;
+	long runtime = jiffies - p->avg_start;
 
 	if (sleep_time > 0) {
-		unsigned long runtime = jiffies - p->avg_start;
-
 		/*
 		 * Tasks that sleep a long time are categorised as idle and
-		 * will get just under interactive status with a small runtime
-		 * to allow them to become interactive or non-interactive rapidly
+		 * will get just under interactive status
 		 */
 		if (sleep_time > MIN_SLEEP_AVG){
-			p->avg_start = jiffies - MIN_SLEEP_AVG;
-			p->sleep_avg = MIN_SLEEP_AVG * (MAX_BONUS - INTERACTIVE_DELTA - 1) /
-				MAX_BONUS;
+			if (runtime > MAX_SLEEP_AVG){
+				runtime = MAX_SLEEP_AVG;
+				p->avg_start = jiffies - runtime;
+			}
+			p->sleep_avg = runtime * (MAX_BONUS - INTERACTIVE_DELTA - 1) / MAX_BONUS;
 		} else {
 			/*
 			 * This code gives a bonus to interactive tasks.


      reply	other threads:[~2003-07-14 18:54 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-14 12:32 [PATCH] O5int for interactivity Con Kolivas
2003-07-14 15:25 ` Felipe Alfaro Solana
2003-07-14 19:11   ` Con Kolivas [this message]

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=200307150511.49294.kernel@kolivas.org \
    --to=kernel@kolivas.org \
    --cc=akpm@osdl.org \
    --cc=efault@gmx.de \
    --cc=felipe_alfaro@linuxmail.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=phillips@arcor.de \
    /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;
as well as URLs for NNTP newsgroup(s).