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".
next prev 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).