From: Linus Torvalds <torvalds@osdl.org>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Muli Ben-Yehuda <muli@il.ibm.com>, Ingo Molnar <mingo@elte.hu>,
Thomas Gleixner <tglx@linutronix.de>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Rajesh Shah <rajesh.shah@intel.com>, Andi Kleen <ak@muc.de>,
"Protasevich, Natalie" <Natalie.Protasevich@UNISYS.com>,
"Luck, Tony" <tony.luck@intel.com>, Andrew Morton <akpm@osdl.org>,
Linux-Kernel <linux-kernel@vger.kernel.org>,
Badari Pulavarty <pbadari@gmail.com>
Subject: Re: 2.6.19-rc1 genirq causes either boot hang or "do_IRQ: cannot handle IRQ -1"
Date: Sat, 7 Oct 2006 12:03:16 -0700 (PDT) [thread overview]
Message-ID: <Pine.LNX.4.64.0610071154510.3952@g5.osdl.org> (raw)
In-Reply-To: <m14pugxe47.fsf@ebiederm.dsl.xmission.com>
On Sat, 7 Oct 2006, Eric W. Biederman wrote:
>
> I am hoping that by running the apics in a different delivery mode
> that explicitly says just deliver this interrupt to this cpu we
> will avoid the problem you are seeing.
Note that having too strict delivery modes could be a major pain in the
future, with things like multicore CPU's a lot more actively doing power
management on their own, and effectively going into sleep-states with
reasonably long latencies.
Especially with schedulers that are aware of things like that (and we
_try_, at least to some degree, and people are interested in more of it),
you can easily be in the situation that one of the cores is being fairly
actively kept in a low-power state, and can have millisecond latencies
(not to mention no L1 cache contents etc).
So I really do think that the belief that we should force irqs to a
particular core is fundamentally flawed.
We used to do lowest-priority stuff in hw, and then Intel broke it, but I
always told them that they were _stupid_ to break it. The fact is,
especially with multi-core, it actually makes a lot of sense to have
hardware decide which core to interrupt, because hardware simply
potentially knows better.
This is one of those age-old questions: in _theory_ you can do a better
job in software, but in _practice_ it's just too damn expensive and
complicated to do a perfect job especially with dynamic decisions, so in
_practice_ it tends to be better to let hardware make some of the
decisions.
We can see the same thing in instruction scheduling: in _theory_ a
compiler can do a better job of scheduling, since it can spend inordinate
amounts of resources on doing things once, and then the hardware can be
simpler and faster and never worry about it. In _practice_, however, the
biggest scheduling decisions are all dynamic at run-time, and depend on
things like cache misses etc, and only total idiots (or embedded people)
will do static scheduling these days.
I think it's a huge mistake to do static interrupt routing for the same
reason.
Linus
next prev parent reply other threads:[~2006-10-07 19:03 UTC|newest]
Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-10-05 21:22 Muli Ben-Yehuda
2006-10-06 15:14 ` Eric W. Biederman
2006-10-06 15:50 ` Muli Ben-Yehuda
2006-10-06 16:20 ` Muli Ben-Yehuda
2006-10-06 19:00 ` Andrew Vasquez
2006-10-06 19:42 ` Andrew Morton
2006-10-06 20:02 ` Andrew Vasquez
2006-10-06 20:15 ` Linus Torvalds
2006-10-06 20:18 ` Andrew Morton
2006-10-06 20:42 ` Muli Ben-Yehuda
2006-10-06 20:14 ` Linus Torvalds
2006-10-06 19:53 ` Benjamin LaHaise
2006-10-06 17:47 ` Eric W. Biederman
2006-10-06 20:23 ` Muli Ben-Yehuda
2006-10-06 23:42 ` Eric W. Biederman
2006-10-07 8:03 ` Muli Ben-Yehuda
2006-10-07 16:52 ` Eric W. Biederman
2006-10-07 17:59 ` Muli Ben-Yehuda
2006-10-08 13:39 ` [PATCH 0/3] x86_64 irq fixes Eric W. Biederman
2006-10-08 13:41 ` [PATCH 1/3] i386/x86_64: FIX pci_enable_irq to set dev->irq to the irq number Eric W. Biederman
2006-10-08 13:43 ` [PATCH 2/3] i386/x86_64: Remove global IO_APIC_VECTOR Eric W. Biederman
2006-10-08 13:47 ` [PATCH 3/3] x86_64 irq: Allocate a vector across all cpus for genapic_flat Eric W. Biederman
2006-10-08 19:01 ` Muli Ben-Yehuda
2006-10-08 18:59 ` [PATCH 0/3] x86_64 irq fixes Muli Ben-Yehuda
2006-10-07 19:03 ` Linus Torvalds [this message]
2006-10-07 19:33 ` 2.6.19-rc1 genirq causes either boot hang or "do_IRQ: cannot handle IRQ -1" Arjan van de Ven
2006-10-07 19:57 ` Linus Torvalds
2006-10-09 6:06 ` Eric W. Biederman
2006-10-09 7:40 ` Arjan van de Ven
2006-10-09 14:46 ` Eric W. Biederman
2006-10-09 15:28 ` Protasevich, Natalie
2006-10-09 15:39 ` Arjan van de Ven
2006-10-09 16:02 ` 2.6.19-rc1 genirq causes either boot hang or "do_IRQ: cannothandle " Protasevich, Natalie
2006-10-07 20:24 ` 2.6.19-rc1 genirq causes either boot hang or "do_IRQ: cannot handle " Eric W. Biederman
2006-10-06 16:02 ` Linus Torvalds
2006-10-06 17:22 ` Eric W. Biederman
2006-10-06 18:08 ` Linus Torvalds
2006-10-06 18:48 ` Eric W. Biederman
2006-10-09 5:41 ` [PATCH 1/1] x86_64 irq: Scream but don't die if we receive an unexpected irq Eric W. Biederman
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=Pine.LNX.4.64.0610071154510.3952@g5.osdl.org \
--to=torvalds@osdl.org \
--cc=Natalie.Protasevich@UNISYS.com \
--cc=ak@muc.de \
--cc=akpm@osdl.org \
--cc=benh@kernel.crashing.org \
--cc=ebiederm@xmission.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=muli@il.ibm.com \
--cc=pbadari@gmail.com \
--cc=rajesh.shah@intel.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®