From: Con Kolivas <kernel@kolivas.org>
To: Roberto Orenstein <rstein@brturbo.com>,
pat erley <paterley@drunkencodepoets.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: patch-O1int-0306281420 for 2.5.73 interactivity
Date: Sun, 29 Jun 2003 14:57:40 +1000 [thread overview]
Message-ID: <200306291457.40524.kernel@kolivas.org> (raw)
In-Reply-To: <200306291132.49068.kernel@kolivas.org>
On Sun, 29 Jun 2003 11:32, Con Kolivas wrote:
> On Sun, 29 Jun 2003 08:45, Roberto Orenstein wrote:
> > On Sat, 2003-06-28 at 17:26, pat erley wrote:
> > > I made a small error when I sent Con a piece of magic I wrote up to
> > > help the sleep period.
> > >
> > > what it says right now:
> > >
> > > /kernel/sched.c around line 325
> > >
> > >
> > > sleep_period = (sleep_period *
> > > 17 * sleep_period / ((17 * sleep_period / (5 * tau) + 2) * 5 * tau));
> > > ----------------------------------------------------------^
> > >
> > > it should be:
> > >
> > > sleep_period = (sleep_period *
> > > 17 * sleep_period / ((17 * sleep_period / (5 * tau + 2)) * 5 * tau));
> > > --------------------------------------------------------------^
> > >
> > > stupid parenthesis.
> > >
> > > a little background. what this essentially is is a taylor
> > > approximation of the function ln(66x+1) normalized. ln(66x+1) happens
> > > to do a great job oas a weighting function on the range of 0 to 1, and
> > > because the input only happens to range from 0 to 1, only 2 terms were
> > > needed to do a 'good enough' job.
> > >
> > > Pat
> >
> > I did your correction and I got a kernel panic(attempting to kill init)
> > on boot. It didn't flushed to disk, so it isn't attached, but it panics
> > at effective_prio+0xcc/0xe0.
> > With objdump I could see it traps a division by 0:
> > cc: f7 fb idiv %ebx
> >
> > I remember cleary %ebx being 0 on the panic report.
> > And I tracked down and the code is on this else in effective_prio:
> > ----------- sched.c 341-----------------
> > else {
> > sleep_period = (sleep_period *
> > 17 * sleep_period / ((17 * sleep_period / (5 * tau + 2)) * 5 * tau));
> > if (!sleep_period)
> > return p->static_prio;
> > }
> > --------------------------------------
> >
> > I don't have the time now to track this further today, but what happens
> > if sleep_period is too small and tau is too big?
> > Could this (17 * sleep_period / (5 * tau + 2) give 0 and so a division
> > by 0?
>
> This will give a divide by zero.
>
> I will put together a new patch soon with this correction and appropriate
> logic.
Further inspection of this code shows to me that the current version will do
the job adequately. The full function Pat put together is a little more
complicated and unfortunately falls over with integer logic. This one is a
reasonable enough approximation.
So to summarise, if you still wish to test/use this patch, continue using the
patch as posted unmodified called:
patch-O1int-0306290223
Con
next prev parent reply other threads:[~2003-06-29 4:40 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-06-28 5:16 patch-O1int-0306281420 for 2.5.73 interactivity Con Kolivas
2003-06-28 16:30 ` Con Kolivas
2003-06-28 17:22 ` Martin Schlemmer
2003-06-29 1:25 ` Con Kolivas
2003-06-28 18:22 ` Felipe Alfaro Solana
2003-06-28 18:02 ` Felipe Alfaro Solana
2003-06-28 20:26 ` pat erley
2003-06-28 22:45 ` Roberto Orenstein
2003-06-29 1:32 ` Con Kolivas
2003-06-29 4:57 ` Con Kolivas [this message]
2003-06-30 5:35 ` Con Kolivas
2003-06-30 7:49 ` Andrew Morton
2003-06-30 7:57 ` Mike Galbraith
2003-06-30 10:16 ` Con Kolivas
2003-06-30 10:59 ` Mike Galbraith
2003-06-30 9:02 ` Felipe Alfaro Solana
2003-06-30 9:39 ` Marc-Christian Petersen
2003-06-30 9:47 ` Andrew Morton
2003-06-30 10:10 ` Marc-Christian Petersen
2003-06-30 10:17 ` Andrew Morton
2003-06-30 21:05 ` Marc-Christian Petersen
2003-06-30 12:21 ` Mike Galbraith
2003-06-30 13:38 ` Con Kolivas
2003-06-30 21:09 ` Marc-Christian Petersen
2003-06-30 18:46 ` Davide Libenzi
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=200306291457.40524.kernel@kolivas.org \
--to=kernel@kolivas.org \
--cc=linux-kernel@vger.kernel.org \
--cc=paterley@drunkencodepoets.com \
--cc=rstein@brturbo.com \
/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