linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Timothy Miller <miller@techsource.com>
To: Charlie Baylis <cb-lkml@fish.zetnet.co.uk>
Cc: linux-kernel@vger.kernel.org, kernel@kolivas.org
Subject: Re: [PATCH] O12.2int for interactivity
Date: Tue, 05 Aug 2003 18:49:56 -0400	[thread overview]
Message-ID: <3F303494.3030406@techsource.com> (raw)
In-Reply-To: 20030804195058.GA8267@cray.fish.zetnet.co.uk



Charlie Baylis wrote:
>>I tried them aggressively; irman2 and thud don't hurt here. The idle
>>detection limits both of them from gaining too much sleep_avg while waiting
>>around and they dont get better dynamic priority than 17. 
> 
> 
> Sounds like you've taken the teeth out of the thud program :) The original aim
> was to demonstrate what happens when a maximally interactive task suddenly
> becomes a CPU hog - similar to a web browser starting to render and causing
> intense X activity in the process. Stopping thud getting maximum priority is
> addressing the symptom, not the cause. (That's not to say the idle detection
> is a bad idea - but it's not the complete answer)
> 
> What happens if you change the line
>   struct timespec st={10,50000000}; 
> to
>   struct timespec st={0,250000000}; 
> 
> and the line
>     nanosleep(&st, 0); 
> to
>     for (n=0; n<40; n++) nanosleep(&st, 0); 
> 
> the idea is to do a little bit of work so that the idle detection doesn't kick
> in and thud can reach the max interactive bonus. (I haven't tried your patch
> yet to see if this change achieves this)


MR.BARNARD: (shouting) What do you want?
MAN: Well I was told outside...
MRB: Don't give me that you snotty-faced heap of parrot droppings!
MAN: What!
MRB: Shut your festering gob you tit! Your type makes me puke! You 
vacuous toffee-nosed malodorous pervert!!
MAN: Look! I came here for an argument.
MRB: (calmly) Oh! I'm sorry, this is abuse!


Or closer to the point:

"For each record player, there is a record which it cannot play."
For more detail, please read this dialog:
http://www.geocities.com/g0del_escher_bach/dialogue4.html



The interactivity detection algorithm will always be inherently 
imperfect.  Given that it is not psychic, it cannot tell in advance 
whether or not a given process is supposed to be interactive, so it must 
GUESS based on its behavior.

Furthermore, for any given scheduler algorithm, it is ALWAYS possible to 
write a program which causes it to misbehave.

This "thud" program is Goedel's theorem for the interactivity scheduler 
(well, that's not exactly right, but you get the idea).  It breaks the 
system.  If you redesign the scheduler to make "thud" work, then someone 
will write "thud2" (which is what you have just done!) which breaks the 
scheduler.  Ad infinitum.  It will never end.  And in this case, 
optimizing for "thud" is likely also to make some other much more common 
situations WORSE.


So, while it MAY be of value to write a few "thud" programs, don't let 
it go too far.  The scheduler should optimize for REAL loads -- things 
that people actually DO.  You will always be able to break it by 
reverse-engineering it and writing a program which violates its 
expectations.  Don't worry about it.  You will always be able to break 
it if you try hard enough.


As Linus says, "Perfect" is the enemy of "Good".



  parent reply	other threads:[~2003-08-05 22:37 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-08-04 19:50 [PATCH] O12.2int for interactivity Charlie Baylis
2003-08-05  2:10 ` Con Kolivas
2003-08-05 22:49 ` Timothy Miller [this message]
2003-08-06  0:12   ` charlie.baylis
2003-08-06  1:23   ` Con Kolivas
2003-08-06 22:24     ` Timothy Miller
2003-08-11  8:14   ` Rob Landley
2003-08-11 23:49     ` Timothy Miller
2003-08-12  0:17       ` William Lee Irwin III
2003-08-12 15:04         ` Timothy Miller
2003-08-12 23:32           ` William Lee Irwin III
2003-08-13 15:46             ` Timothy Miller
2003-08-14  6:09               ` William Lee Irwin III
2003-08-14  6:59                 ` Con Kolivas
2003-08-14  7:01                   ` William Lee Irwin III
2003-08-14  7:46                     ` Con Kolivas
2003-08-14 20:03                       ` Timothy Miller
2003-08-15 16:40                         ` Con Kolivas
2003-08-14 20:00                     ` Timothy Miller
2003-08-15 16:38                       ` Con Kolivas
2003-08-15 18:12                         ` Timothy Miller
2003-08-17  2:19                           ` William Lee Irwin III
2003-08-17 18:00                           ` Mike Fedyk
2003-08-14 19:57                   ` Timothy Miller
2003-08-15 16:35                     ` Con Kolivas
2003-08-15 18:17                       ` Timothy Miller
2003-08-16  2:29                         ` Con Kolivas
2003-08-14 19:54                 ` Timothy Miller
  -- strict thread matches above, loose matches on Subject: below --
2003-08-03 21:19 Voluspa
2003-08-04  2:34 ` Con Kolivas
2003-08-03 10:14 Con Kolivas
2003-08-03 11:25 ` Ingo Molnar
2003-08-03 11:36   ` Con Kolivas
2003-08-04  3:06   ` Con Kolivas
2003-08-03 11:37 ` Felipe Alfaro Solana

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=3F303494.3030406@techsource.com \
    --to=miller@techsource.com \
    --cc=cb-lkml@fish.zetnet.co.uk \
    --cc=kernel@kolivas.org \
    --cc=linux-kernel@vger.kernel.org \
    /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).