From: "Luck, Tony" <tony.luck@intel.com>
To: Ingo Molnar <mingo@elte.hu>
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com>,
Ingo Molnar <mingo@redhat.com>,
linux-ia64@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: boot-time slowdown for measure_migration_cost
Date: Mon, 30 Jan 2006 18:53:01 +0000 [thread overview]
Message-ID: <20060130185301.GA4622@agluck-lia64.sc.intel.com> (raw)
In-Reply-To: <20060130172140.GB11793@elte.hu>
On Mon, Jan 30, 2006 at 06:21:40PM +0100, Ingo Molnar wrote:
> - double-check that max_cache_size gets set up correctly on your
> architecture - the code searches from ~64K to 2*max_cache_size.
Ia64 gets that from PAL in get_max_cacheline_size() in ia64/kernel/setup.c
A quick printk() in there confirms that we get the right answer (9MB for
me), and that it happens before we compute the migration cost.
> - take the values that are auto-detected and use the migration_cost=
> boot parameter - see Documentation/kernel-parameters.txt:
> ...
> via this solution you will get zero overhead on subsequent bootups.
But if you are going to go this route, you could drop all this code from
the kernel and have a hard-wired constant, with a user-mode test program
to compute the more accurate value.
> - in kernel/sched.c, decrease ITERATIONS from 2 to 1. This will make the
> measurement more noisy though.
Doing this drops the time to compute the value from 15.58s to 10.39s, while
the value of migration_cost changes from 10112 to 9909.
> - in kernel/sched.c, change this line:
> size = size * 20 / 19;
> to:
> size = size * 10 / 9;
Doing this instead of changing ITERATIONS makes the computation take 7.79s
and the computed migration_cost is 9987.
Doing both gets the time down to 5.20s, and the migration_cost™90.
So the variation in the computed value of migration_cost was at worst
2% with these modifications to the algorithm. Do you really need to know
the value to this accuracy? What 2nd order bad effects would occur from
using an off-by-2% value for scheduling decisions?
On the plus side Prarit's results show that this time isn't scaling with
NR_CPUS ... apparently just cache size and number of domains are significant
in the time to compute.
-Tony
next prev parent reply other threads:[~2006-01-30 18:53 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-01-27 21:03 boot-time slowdown for measure_migration_cost Bjorn Helgaas
2006-01-27 21:48 ` Luck, Tony
2006-01-27 22:08 ` Prarit Bhargava
2006-01-30 17:21 ` Ingo Molnar
2006-01-30 18:53 ` Luck, Tony [this message]
2006-01-30 19:24 ` Ingo Molnar
2006-01-30 20:00 ` Luck, Tony
2006-01-30 20:43 ` Prarit Bhargava
2006-01-30 20:52 ` Prarit Bhargava
2006-01-30 20:43 ` John Hawkes
2006-01-30 19:26 ` Chen, Kenneth W
2006-02-01 0:50 ` Chuck Ebbert
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=20060130185301.GA4622@agluck-lia64.sc.intel.com \
--to=tony.luck@intel.com \
--cc=bjorn.helgaas@hp.com \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mingo@redhat.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