From: Andi Kleen <ak@suse.de>
To: Ingo Molnar <mingo@elte.hu>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] [3/6] scheduler: Do devirtualization for sched_fair
Date: Mon, 8 Oct 2007 16:33:52 +0200 [thread overview]
Message-ID: <200710081633.52467.ak@suse.de> (raw)
In-Reply-To: <20071008123933.GA4582@elte.hu>
On Monday 08 October 2007 14:39:33 Ingo Molnar wrote:
>
> * Andi Kleen <ak@suse.de> wrote:
>
> > > hm, i'm not convinced about this one. It increases the code size a
> > > bit
> >
> > Tiny bit (<200 bytes) and the wait_for/sleep_on refactor patch in the
> > series saves over 1K so I should have some room for code size
> > increase. Overall it will be still considerable smaller.
>
> there's no forced dependency between those two patches :-)
I did that .text reduction only to make up for the text increase
from the other patch. Your approach is asking for keeping them both
in a single patch next time, which surely cannot be what you really
want.
> So for now
> i've applied the one that saves text and skipped the one that bloats it.
Ok, but I trust I have at least 0.5kb bloat budget for future changes now.
>
> > > and it's a sched.c local hack. If then this should be done on a
> > > generic infrastructure level - lots of other code (VFS, networking,
> > > etc.) could benefit from it i suspect - and then should be
> > > .configurable as well.
> >
> > Unfortunately not -- for this to work (especially for inlining)
> > requires to
> > #include files implementing the sub calls. Except for the scheduler
> > #that
> > is pretty uncommon unfortunately. Also the situation regarding which
> > call target is the common one is typically much less clear than with
> > sched_fair / other scheduling classes.
>
> some workloads would call sched_fair uncommon too. To me this seems like
> a workaround for the lack of a particular hardware feature.
That's like saying all optimizations are a workaround for lack of hardware
with infinite IPC. Yes sure. But that doesn't seem like a very fruitful way to
reason.
Besides even on CPUs with indirect branch predictor it is probably a win --
they tend to have much less memory to store indirect branch prediction (requires
an address) than for conditional jumps (requires just a bit)
> > > Then the benefit might become measurable too.
> >
> > It might have been measurable if the context switch was measurable at
> > all. Unfortunately the lmbench3 lat_ctx test I tired fluctuated by
> > itself over 50%. Ok I suppose it would be possible to instrument the
> > kernel itself to measure cycles. Would that convince you?
>
> dunno, it would depend on the numbers. But really, in most workloads we
> do a lot more VFS indirect calls than scheduler indirect calls. So if
> this was an issue i'd really suggest to attack it in a generic way.
The difference is that the VFS always did indirect calls; but the scheduler
didn't. And again it's much less clear for the VFS in general what
are the common paths. To do it fully generic would probably require
a JIT and reoptimization at run time -- i don't think that's a path
we should go.
But if generic solutions are not possible doing it for important
special cases where it happens to be possible is certainly a valid approach.
But given that I couldn't come up with clear numbers it's reasonable to not
apply it yet. I'll try to come up with some better way to measure this.
-Andi
next prev parent reply other threads:[~2007-10-08 14:34 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-10-07 20:59 [PATCH] [0/6] Some scheduler changes for sched-devel Andi Kleen
2007-10-07 20:59 ` [PATCH] [1/6] scheduler: Remove some unnecessary gotos in sched.c Andi Kleen
2007-10-08 11:36 ` Ingo Molnar
2007-10-09 19:17 ` Ingo Molnar
2007-10-10 0:55 ` Andi Kleen
2007-10-10 11:25 ` Ingo Molnar
2007-10-10 11:26 ` Ingo Molnar
2007-10-07 20:59 ` [PATCH] [2/6] scheduler: Refactor common code of sleep_on / wait_for_completion Andi Kleen
2007-10-07 22:22 ` [PATCH] [2/6] scheduler: Refactor common code of sleep_on / wait_for_completion v2 Andi Kleen
2007-10-08 11:39 ` Ingo Molnar
2007-10-08 12:03 ` Ingo Molnar
2007-10-07 20:59 ` [PATCH] [3/6] scheduler: Do devirtualization for sched_fair Andi Kleen
2007-10-08 11:42 ` Ingo Molnar
2007-10-08 12:32 ` Andi Kleen
2007-10-08 12:39 ` Ingo Molnar
2007-10-08 14:33 ` Andi Kleen [this message]
2007-10-07 20:59 ` [PATCH] [4/6] scheduler: Refactor normalize_rt_tasks Andi Kleen
2007-10-08 11:44 ` Ingo Molnar
2007-10-07 20:59 ` [PATCH] [5/6] scheduler: Protect important kernel threads against normalize_rt Andi Kleen
2007-10-08 11:51 ` Ingo Molnar
2007-10-08 12:33 ` Andi Kleen
2007-10-08 12:43 ` Ingo Molnar
2007-10-08 13:08 ` Andi Kleen
2007-10-07 20:59 ` [PATCH] [6/6] scheduler: Remove bogus comment in sched_group_set_shares Andi Kleen
2007-10-08 11:52 ` Ingo Molnar
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=200710081633.52467.ak@suse.de \
--to=ak@suse.de \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.