From: Jack Steiner <steiner@sgi.com>
To: linux-ia64@vger.kernel.org
Subject: [PATCH] - Cacheline align jiffies_64
Date: Mon, 06 Dec 2004 19:32:32 +0000 [thread overview]
Message-ID: <20041206193232.GA14994@sgi.com> (raw)
Is there any reason jiffies_64 should not be cacheline aligned?
On large systems, system overhead on cpu 0 is higher than on other
cpus. On a completely idle 512p system, the average amount of system time
on cpu 0 is 2.4% and .15% on cpu 1-511.
A second interesting data point is that if I run a busy-loop
program on cpus 1-511, the system overhead on cpu 0 drops
significantly.
I moved the timekeeper to cpu 1. The excessive system time moved
to cpu 1 and the system time on cpu 0 dropped to .2%.
Further investigation showed that the problem was caused by false
sharing of the cacheline containing jiffies_64. On the kernel that
I was running, both jiffies_64 & pal_halt share the same cacheline.
Idle cpus are frequently accessing pal_halt. Minor kernel
changes (including some of the debugging code that I used to find the
problem :-( ) can cause variables to move & change the false sharing - the
symptoms of the problem can change or disappear.
The following shows system time on cpus 0-3 before & after the fix:
OLD
0.23 2.71 0.15 0.15
ALIGNED
0.22 0.75 0.16 0.15
Signed-off-by: Jack Steiner <steiner@sgi.com>
Cachealign jiffies_64 to prevent unexpected aliasing in the caches.
Index: linux/arch/ia64/kernel/time.c
=================================--- linux.orig/arch/ia64/kernel/time.c 2004-11-30 20:30:11.000000000 -0600
+++ linux/arch/ia64/kernel/time.c 2004-12-06 13:17:45.170451297 -0600
@@ -32,7 +32,7 @@
extern unsigned long wall_jiffies;
-u64 jiffies_64 = INITIAL_JIFFIES;
+u64 jiffies_64 __cacheline_aligned_in_smp = INITIAL_JIFFIES;
EXPORT_SYMBOL(jiffies_64);
--
Thanks
Jack Steiner (steiner@sgi.com) 651-683-5302
Principal Engineer SGI - Silicon Graphics, Inc.
next reply other threads:[~2004-12-06 19:32 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-06 19:32 Jack Steiner [this message]
2004-12-06 21:03 ` [PATCH] - Cacheline align jiffies_64 Grant Grundler
2004-12-06 22:01 ` Jack Steiner
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=20041206193232.GA14994@sgi.com \
--to=steiner@sgi.com \
--cc=linux-ia64@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 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.