From: Martin Bligh <mbligh@google.com>
To: john stultz <johnstul@us.ibm.com>
Cc: Andrew Morton <akpm@osdl.org>,
lkml <linux-kernel@vger.kernel.org>,
apw@uk.ibm.com
Subject: Re: [PATCH -mm] i386: Don't disable the TSC on single node NUMAQs
Date: Tue, 07 Feb 2006 15:38:37 -0800 [thread overview]
Message-ID: <43E92F7D.7030904@google.com> (raw)
In-Reply-To: <1139351607.10057.223.camel@cog.beaverton.ibm.com>
john stultz wrote:
> Currently on NUMAQ hardware we set tsc_disable=1 because on multi-node
> NUMAQ hardware the TSC is not synced. However, it is safe to use the TSC
> on single node NUMAQs. Thus this patch only disables the TSC if
> num_online_nodes() > 1.
>
> This should fix performance issues seen w/ -mm by mbligh on elm3b132
> (which is a single node NUMAQ). These performance issues originated
> because with mainline code, the function that disables the TSC runs
> after time_init, thus the TSC is used regardless, allowing for possible
> timekeeping errors on multi-node systems.
>
> With my new timekeeping work (in 2.6.16-rc1-mm1,mm2 and mm5), we do not
> select the TSC until later, so we see the TSC has been disabled and use
> the slower PIT instead as the original code intends. This caused the
> performance regression.
>
> While this patch allows the TSC to be used safely only on single node
> NUMAQs, multi-node NUMAQs may still see a performance drop from using
> the PIT, but this is necessary as using unsynched TSCs will result in
> incorrect timekeeping.
>
>
> For test results, please see the graph:
> http://test.kernel.org/perf/kernbench.elm3b132.png
>
> 2.6.16-rc1-mm5: without this patch
> 2.6.16-rc1-mm5+p22126: with this patch
>
>
> This patch also fixes the typo'ed function name.
>
> thanks
> -john
>
> Signed-off-by: John Stultz <johnstul@us.ibm.com>
Looks good ... thanks for fixing it ;-)
Signed-off-by: Martin J. Bligh <mbligh@google.com>
> diff --git a/arch/i386/kernel/numaq.c b/arch/i386/kernel/numaq.c
> index 5f5b075..0caf146 100644
> --- a/arch/i386/kernel/numaq.c
> +++ b/arch/i386/kernel/numaq.c
> @@ -79,10 +79,12 @@ int __init get_memcfg_numaq(void)
> return 1;
> }
>
> -static int __init numaq_dsc_disable(void)
> +static int __init numaq_tsc_disable(void)
> {
> - printk(KERN_DEBUG "NUMAQ: disabling TSC\n");
> - tsc_disable = 1;
> + if (num_online_nodes() > 1) {
> + printk(KERN_DEBUG "NUMAQ: disabling TSC\n");
> + tsc_disable = 1;
> + }
> return 0;
> }
> -core_initcall(numaq_dsc_disable);
> +arch_initcall(numaq_tsc_disable);
>
>
prev parent reply other threads:[~2006-02-07 23:38 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-02-07 22:33 [PATCH -mm] i386: Don't disable the TSC on single node NUMAQs john stultz
2006-02-07 23:38 ` Martin Bligh [this message]
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=43E92F7D.7030904@google.com \
--to=mbligh@google.com \
--cc=akpm@osdl.org \
--cc=apw@uk.ibm.com \
--cc=johnstul@us.ibm.com \
--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