From: chen Shang <shangcs@gmail.com>
To: Con Kolivas <kernel@kolivas.org>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>,
linux-kernel@vger.kernel.org, rml@tech9.net
Subject: Re: [PATCH] kernel <linux-2.6.11.10> kernel/sched.c
Date: Fri, 20 May 2005 06:41:46 -0700 [thread overview]
Message-ID: <855e4e460505200641423b24c9@mail.gmail.com> (raw)
In-Reply-To: <200505201736.02664.kernel@kolivas.org>
Here is the statistics data to support requeue_task() inline with the
counter on sched_cnt at the same period. In brief, every 10 schedule()
will trigger recalc_task_prio() a little more than 4 times.
CPU0: priority_changed (669 times), priority_unchanged(335,138 times),
schedule_cnt(787,085 times)
CPU1: priority_changed (784 times), priority_unchanged(342,419 times),
schedule_cnt(784,873 times)
CPU2: priority_changed (782 times), priority_unchanged(283,494 times),
schedule_cnt(681,917 times)
CPU3: priority_changed (872 times), priority_unchanged(365,865 times),
schedule_cnt(809,624 times)
On 5/20/05, Con Kolivas <kernel@kolivas.org> wrote:
> On Fri, 20 May 2005 17:21, Nick Piggin wrote:
> > chen Shang wrote:
> > >I minimized my patch and against to 2.6.12-rc4 this time, see below.
> > >
> > >The new schedstat fields are for the test propose only, so I removed
> > >them completedly from patch. Theoritically, requeue_task() is always
> > >cheaper than dequeue_task() followed by enqueue_task(). So, if 99% of
> > >priority recalculation trigger requeue_task(), it will save.
> > >
> > >In addition, my load is to build the kernel, which took around 30
> > >minutes with around 30% CPU usage on 2x2 processors (duel processors
> > >with HT enable).
> > >Here is the statistics:
> > >
> > >CPU0: priority_changed (669 times), priority_unchanged(335,138 times)
> > >CPU1: priority_changed (784 times), priority_unchanged(342,419 times)
> > >CPU2: priority_changed (782 times), priority_unchanged(283,494 times)
> > >CPU3: priority_changed (872 times), priority_unchanged(365,865 times)
> >
> > OK that gives you a good grounds to look at the patch, but _performance_
> > improvement is what is needed to get it included.
>
> If you end up using requeue_task() in the fast path and it is hit frequently
> with your code you'll need to modify requeue_task to be inline as well.
> Currently it is hit only via sched_yield and once every 10 scheduler ticks
> which is why it is not inline. The performance hit will be demonstrable if it
> is hit in every schedule()
>
> Cheers,
> Con
>
>
>
next prev parent reply other threads:[~2005-05-20 13:42 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-05-19 16:56 [PATCH] kernel <linux-2.6.11.10> kernel/sched.c chen Shang
2005-05-20 3:26 ` Nick Piggin
2005-05-20 4:17 ` chen Shang
2005-05-20 4:32 ` Lee Revell
2005-05-20 5:13 ` Nick Piggin
2005-05-20 7:12 ` chen Shang
2005-05-20 7:21 ` Nick Piggin
2005-05-20 7:36 ` Con Kolivas
2005-05-20 13:41 ` chen Shang [this message]
2005-05-20 9:49 ` Ingo Molnar
2005-05-20 10:40 ` Con Kolivas
2005-05-20 11:34 ` Ingo Molnar
2005-05-22 4:41 ` Chen Shang
2005-05-23 7:11 ` Ingo Molnar
2005-05-23 14:45 ` Chen Shang
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=855e4e460505200641423b24c9@mail.gmail.com \
--to=shangcs@gmail.com \
--cc=kernel@kolivas.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nickpiggin@yahoo.com.au \
--cc=rml@tech9.net \
/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