public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jack Steiner <steiner@sgi.com>
To: linux-kernel@vger.kernel.org
Subject: hot cache line due to note_interrupt()
Date: Mon, 10 Nov 2003 15:58:44 -0600	[thread overview]
Message-ID: <20031110215844.GC21632@sgi.com> (raw)


I dont know the background on note_interrupt() in arch/ia64/kernel/irq.c, 
but I had to disable the function on our large systems (IA64).

The function updates a counter in the irq_desc_t table. An entry in this table
is shared by all cpus that take a specific interrupt #. For most interrupt #'s,
this is a problem but it is prohibitive for the timer tick on big systems.

Updating the counter causes a cache line to be bounced between
cpus at a rate of at least HZ*active_cpus. (The number of bus transactions
is at least 2X higher because the line is first obtained for
shared usage, then upgraded to modified. In addition, multiple references
are made to the line for each interrupt. On a big system, it is unlikely that
a cpu can hold the line for entire time that the interrupt is being
serviced).

On a 500p system, the system was VERY slowly making forward progres during boot,
but I didnt have the patience to wait for it finish. After I disabled
note_interrupt(), I had no problem booting.

Certainly, the problem is much less severe on smaller systems. However, even
moderate sized systems may see some degradation due to this hot cache line.



I also verified on a system simulator that the counter in note_interrupt() is the
only line that is bounced between cpus at a HZ rate on an idle system.

The IPI & reschedule interrupts have a similar problem but at a lower rate.


(initialially sent to linux-ia64@vger.kernel.org)

-- 
Thanks

Jack Steiner (steiner@sgi.com)          651-683-5302
Principal Engineer                      SGI - Silicon Graphics, Inc.



             reply	other threads:[~2003-11-10 21:58 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-10 21:58 Jack Steiner [this message]
2003-11-10 23:00 ` hot cache line due to note_interrupt() Anton Blanchard
2003-11-11  8:29 ` Ravikiran G Thirumalai
2003-11-11 16:25   ` Anton Blanchard
2003-11-11 19:58   ` Andrew Morton
2003-11-14 17:45     ` Jack Steiner
2003-11-14 17:57       ` Andrew Morton
2003-11-14 18:11         ` Jack Steiner
2003-11-14 18:10       ` David Mosberger
2003-11-14 18:17       ` Linus Torvalds
2003-11-15  5:18         ` Jeff Garzik
2003-11-14 19:10       ` Anton Blanchard
2003-11-14 19:28         ` Mike Fedyk

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=20031110215844.GC21632@sgi.com \
    --to=steiner@sgi.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