linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mike Galbraith <efault@gmx.de>
To: Felipe Alfaro Solana <felipe_alfaro@linuxmail.org>
Cc: Ingo Molnar <mingo@elte.hu>, LKML <linux-kernel@vger.kernel.org>
Subject: Re: [patch] sched-2.6.0-test1-G6, interactivity changes
Date: Mon, 28 Jul 2003 08:04:59 +0200	[thread overview]
Message-ID: <5.2.1.1.2.20030728065857.01bc9708@pop.gmx.net> (raw)
In-Reply-To: <1059333494.578.4.camel@teapot.felipe-alfaro.com>

At 09:18 PM 7/27/2003 +0200, Felipe Alfaro Solana wrote:
>On Sun, 2003-07-27 at 15:40, Ingo Molnar wrote:
> > my latest scheduler patchset can be found at:
> >
> >       redhat.com/~mingo/O(1)-scheduler/sched-2.6.0-test1-G6
> >
> > this version takes a shot at more scheduling fairness - i'd be interested
> > how it works out for others.
>
>This -G6 patch is fantastic, even without nicing the X server. I didn't
>even need to tweak any kernel scheduler knob to adjust for maximum
>smoothness on my desktop. Response times are impressive, even under
>heavy load. Great!

Can you try the following please?

This one I just noticed:
1.  start top.
2.  start dd if=/dev/zero | dd of=/dev/null
3.  wiggle a window very briefly.
Here, X becomes extremely jerky, and I think this is due to two 
things.  One, X uses it's sleep_avg very quickly, and expires.  Two, the 
piped dd now is highly interactive due to the ns resolution clock (uhoh).

This one, I've seen before, but it just became easily repeatable:
1.  start top.
2.  start make -j2 bzImage.  minimize window.
3.  start xmms, and enable it's gl visualization.
4.  grab top window and wiggle it until you see/feel X expire.  (don't blink)
         What you should notice:
         1.  your desktop response is now horrible.
         2.  X is sitting at prio 25, and is not getting better as minutes 
pass.
         3.  the gl thread (oink) is suddenly at interactive priority, and 
stays that way.
5.  minimize gl window
         What you should notice:
         1.  your desktop recovers, because..
         2.  X now recovers it's interactive priority, and the gl thread 
becomes non-interactive.
6.  scratch head ;-)

My conclusions:
1.  evil voodoo.  (then a while later..;)
2.  while X is running, but is in the expired array, the wakeups it is 
supposed to be sending to the gl thread are delayed by the amount of cpu 
used by the two cc1's (also at prio 25) it is round-robining with.  Ergo, 
the gl thread receives that quantity of additional boost.  X is not 
sleeping, he's trying to get the cpu, ergo he cannot receive sleep 
boost.  He can't get enough cpu to do his job and go to sleep long enough 
to recharge his sleep_avg.  He stays low priority.  Kobiashi-maru:  X can't 
keep the cpu long enough to catch up.  Either it expires, or it wakes the 
gl thread, is preempted, and _then_ expires, waits for cc1's, wakes gl 
thread (+big boost), gets preempted again... repeat forever, or until you 
reduce X's backlog, by minimizing,  covering or killing the gl thread.

Conclusion accuracy/inaccuracy aside, I'd like to see if anyone else can 
reproduce that second scenario.

         -Mike 


  reply	other threads:[~2003-07-28  5:45 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-27 13:40 [patch] sched-2.6.0-test1-G6, interactivity changes Ingo Molnar
2003-07-27 14:03 ` Con Kolivas
2003-07-28  7:24   ` Ingo Molnar
2003-07-28  8:50     ` Con Kolivas
2003-07-28 21:38     ` Bill Davidsen
2003-07-28 22:00       ` Con Kolivas
2003-07-30  2:49         ` Bill Davidsen
2003-08-08 19:41         ` Rob Landley
2003-07-27 19:18 ` Felipe Alfaro Solana
2003-07-28  6:04   ` Mike Galbraith [this message]
2003-07-28  6:45     ` Andre Hedrick
2003-07-28  7:05     ` Con Kolivas
2003-07-28  7:33       ` Mike Galbraith
2003-07-28  7:44         ` Ingo Molnar
2003-07-30 14:24           ` Szonyi Calin
     [not found]         ` <Pine.LNX.4.44.0307280935300.4596-100000@localhost.localdom ain>
2003-07-28  8:15           ` Mike Galbraith
2003-07-28  8:42             ` Con Kolivas
2003-07-28  8:49               ` Mike Galbraith
     [not found]     ` <Pine.LNX.4.10.10307272338160.30891-100000@master.linux-ide .org>
2003-07-28  7:27       ` Mike Galbraith
2003-07-28 17:33         ` Andre Hedrick
     [not found]         ` <Pine.LNX.4.10.10307281030180.30891-100000@master.linux-ide .org>
2003-07-29  7:44           ` Mike Galbraith
2003-07-28 17:17 ` Jose Luis Domingo Lopez

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=5.2.1.1.2.20030728065857.01bc9708@pop.gmx.net \
    --to=efault@gmx.de \
    --cc=felipe_alfaro@linuxmail.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    /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).