All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ingo Molnar <mingo@elte.hu>
To: Jiri Slaby <jirislaby@gmail.com>
Cc: mingo@redhat.com, tglx@linutronix.de, hpa@zytor.com,
	x86@kernel.org, yinghai@kernel.org, linux-kernel@vger.kernel.org,
	Bernhard Walle <bernhard.walle@gmx.de>
Subject: Re: [PATCH 1/2] IRQ: fix performance regression on large IA64 systems
Date: Sat, 4 Jul 2009 12:26:37 +0200	[thread overview]
Message-ID: <20090704102637.GA32257@elte.hu> (raw)
In-Reply-To: <1246611709-9919-1-git-send-email-jirislaby@gmail.com>


* Jiri Slaby <jirislaby@gmail.com> wrote:

> Commit b60c1f6ffd88850079ae419aa933ab0eddbd5535
> (drop note_interrupt() for per-CPU for proper scaling) removed call to
> note_interrupt() in __do_IRQ(). Commit
> d85a60d85ea5b7c597508c1510c88e657773d378
> (Add IRQF_IRQPOLL flag (common code)) added it again, because it's needed
> for irqpoll.
> 
> This patch now introduces a new parameter 'only_fixup' for 
> note_interrupt(). This parameter determines two cases:
> 
>   TRUE  => The function should be only executed when irqfixup is set.
>            Either 'irqpoll' or 'irqfixup' directly set that.
> 
>   FALSE => Just the behaviour as note_interrupt() always had.
> 
> Now the patch converts all calls of note_interrupt() to 
> only_fixup=FALSE, except the call that has been removed by 
> b60c1f6ffd. So that call is always done, but the body is only 
> executed when either 'irqpoll' or 'irqfixup' are specified.
> 
> This is needed because __do_IRQ() calls note_interrupt() to record 
> IRQ statistics. It ends up creating serious cache line contention, 
> enough that a 1024p system live locks under the crushing weight of 
> the timer tick.
> 
> The note_interrupt() call modifies fields in the irq_desc_t 
> structure. For PER_CPU timer interrupts (on ia64 machines) this 
> causes cacheline contention.
> 
> Systems with 1024 processors take an extremely long time to boot 
> up, as most of the time is spent attempting to service timer 
> interrupts.  With noirqdebug added to the boot line, the system 
> boots in close to the normal amount of time.

What would be the effect/cost of enabling this by default? Seems 
desirable and eventually we'll hit those problems with regular 
systems too ...

	Ingo

  parent reply	other threads:[~2009-07-04 10:27 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-03  9:01 [PATCH 1/2] IRQ: fix performance regression on large IA64 systems Jiri Slaby
2009-07-03  9:01 ` [PATCH 2/2] IRQ: remove irqfixup MODULE_PARM_DESC Jiri Slaby
2009-07-04 10:26 ` Ingo Molnar [this message]
2009-07-05 19:26 ` [PATCH 1/2] IRQ: fix performance regression on large IA64 systems Thomas Gleixner
2009-07-30 22:22   ` Jiri Slaby

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=20090704102637.GA32257@elte.hu \
    --to=mingo@elte.hu \
    --cc=bernhard.walle@gmx.de \
    --cc=hpa@zytor.com \
    --cc=jirislaby@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=x86@kernel.org \
    --cc=yinghai@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.