From: Dave Hansen <haveblue@us.ibm.com>
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: "Martin J. Bligh" <mbligh@aracnet.com>, Gerrit Huizenga <gh@us.ibm.com>
Subject: Horrible L2 cache effects from kernel compile
Date: Mon, 24 Feb 2003 16:41:37 -0800 [thread overview]
Message-ID: <3E5ABBC1.8050203@us.ibm.com> (raw)
I was testing Martin Bligh's kernbench (a kernel compile with
-j(2*NR_CPUS)) and using DCU_MISS_OUTSTANDING as the counter event.
The surprising thing? d_lookup() accounts for 8% of the time spent
waiting for an L2 miss.
__copy_to_user_ll should be trashing a lot of cachelines, but d_lookup()
is strange.
Counter 0 counted DCU_MISS_OUTSTANDING events (number of cycles while
DCU miss outstanding) with a unit mask of 0x00 (Not set) count 10000
c017d78c 72929 1.92175 start_this_handle
c0139b60 75317 1.98468 vm_enough_memory
c0138cd4 75367 1.986 do_no_page
c01ccae0 79475 2.09425 atomic_dec_and_lock
c0117320 80918 2.13227 scheduler_tick
c0176338 90851 2.39402 ext3_dirty_inode
c013cc38 132228 3.48434 page_remove_rmap
c0176557 148116 3.90301 .text.lock.inode
c013cae0 156345 4.11985 page_add_rmap
c012c964 157716 4.15598 find_get_page
c015797c 314165 8.27857 d_lookup
c01cc948 334779 8.82177 __copy_to_user_ll
a snippet from d_lookup(), annotated. I've seen oprofile be off by a
line here, but we can be pretty sure it is in this area.
...
smp_read_barrier_depends();
/* 106 0.002793% */
dentry = list_entry(tmp, struct dentry, d_hash);
/* if lookup ends up in a different bucket
* due to concurrent rename, fail it
*/
/* 154991 4.084% */
if (unlikely(dentry->d_bucket != head))
break;
/* to avoid race if dentry keep coming back to original
* bucket due to double moves
*/
/* 634 0.01671% */
if (unlikely(++lookup_count > max_dentries))
break;
...
--
Dave Hansen
haveblue@us.ibm.com
next reply other threads:[~2003-02-25 0:32 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-02-25 0:41 Dave Hansen [this message]
2003-02-25 0:59 ` Horrible L2 cache effects from kernel compile William Lee Irwin III
2003-02-25 1:01 ` Dave Hansen
2003-02-25 3:15 ` John Levon
2003-02-25 3:15 ` William Lee Irwin III
2003-02-25 3:35 ` Andrew Morton
2003-02-25 4:13 ` Martin J. Bligh
2003-02-25 11:57 ` John Levon
2003-02-25 2:31 ` Linus Torvalds
2003-02-25 17:05 ` John W. M. Stevens
[not found] <3E5ABBC1.8050203@us.ibm.com.suse.lists.linux.kernel>
2003-02-25 16:16 ` Andi Kleen
2003-02-27 3:24 ` Dave Hansen
2003-02-27 16:36 ` Jan Harkes
[not found] ` <b3ekil$1cp$1@penguin.transmeta.com.suse.lists.linux.kernel>
[not found] ` <20030225170546.GA23772@morningstar.nowhere.lie.suse.lists.linux.kernel>
2003-02-25 17:20 ` Andi Kleen
2003-02-26 18:22 ` Jamie Lokier
-- strict thread matches above, loose matches on Subject: below --
2003-02-25 18:37 Manfred Spraul
2003-02-25 18:41 ` Dave Hansen
2003-02-25 18:42 ` Andi Kleen
2003-02-25 19:29 ` Martin J. Bligh
2003-02-25 22:18 ` Linus Torvalds
2003-03-03 19:03 ` Benjamin LaHaise
2003-03-03 19:13 ` Linus Torvalds
2003-03-03 23:58 ` Alan Cox
2003-03-03 22:57 ` Andrew Morton
2003-03-03 23:01 ` Benjamin LaHaise
2003-03-03 23:09 ` Linus Torvalds
2003-03-05 20:19 ` dean gaudet
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=3E5ABBC1.8050203@us.ibm.com \
--to=haveblue@us.ibm.com \
--cc=gh@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mbligh@aracnet.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 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.