From: ebiederm@xmission.com (Eric W. Biederman)
To: Linus Torvalds <torvalds@osdl.org>
Cc: Ingo Molnar <mingo@redhat.com>, Komuro <komurojun-mbn@nifty.com>,
tglx@linutronix.de, Adrian Bunk <bunk@stusta.de>,
Andrew Morton <akpm@osdl.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: [PATCH] Use delayed disable mode of ioapic edge triggered interrupts
Date: Tue, 14 Nov 2006 10:52:12 -0700 [thread overview]
Message-ID: <m18xidlxv7.fsf_-_@ebiederm.dsl.xmission.com> (raw)
In-Reply-To: <Pine.LNX.4.64.0611140757040.31445@g5.osdl.org> (Linus Torvalds's message of "Tue, 14 Nov 2006 08:10:48 -0800 (PST)")
Linus Torvalds <torvalds@osdl.org> writes:
> Of course, for edge-triggered APIC interrupts, we _have_ to replay the irq
> (since we don't have any way of even *knowing* whether we might get it
> again), but for level-triggered and for the old legacy i8259 controller
> that gets it right for edges anwyay, we should _not_ send the spurious
> interrupt that is no longer active.
>
> And a lot of code has been tested with either just the i8259 (old machines
> without any APIC) or with PCI-only devices (which are always level-
> triggered), so the fact that edge-triggered things have always seen the
> potential for spurious interrupts is not a reasong to say "well, they have
> to handle it anyway". True PCI drivers generally do _not_ have to handle
> the crazy case, and generally have never seen it.
>
> In other words, I think we should just make APIC-edge have the "please
> delay masking and replay" bit, and nobody else.
>
> Can you send that patch (for both x86 and x86-64), and we can ask Komuro
> to test it. That would be the "same behaviour as we've always had" thing,
> which I think is also the _right_ behaviour.
Hopefully this is the trivial patch that solves the problem.
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
diff --git a/arch/i386/kernel/io_apic.c b/arch/i386/kernel/io_apic.c
index ad84bc2..3b7a63e 100644
--- a/arch/i386/kernel/io_apic.c
+++ b/arch/i386/kernel/io_apic.c
@@ -1287,9 +1287,11 @@ static void ioapic_register_intr(int irq
trigger == IOAPIC_LEVEL)
set_irq_chip_and_handler_name(irq, &ioapic_chip,
handle_fasteoi_irq, "fasteoi");
- else
+ else {
+ irq_desc[irq].status |= IRQ_DELAYED_DISABLE;
set_irq_chip_and_handler_name(irq, &ioapic_chip,
handle_edge_irq, "edge");
+ }
set_intr_gate(vector, interrupt[irq]);
}
diff --git a/arch/x86_64/kernel/io_apic.c b/arch/x86_64/kernel/io_apic.c
index 41bfc49..14654e6 100644
--- a/arch/x86_64/kernel/io_apic.c
+++ b/arch/x86_64/kernel/io_apic.c
@@ -790,9 +790,11 @@ static void ioapic_register_intr(int irq
trigger == IOAPIC_LEVEL)
set_irq_chip_and_handler_name(irq, &ioapic_chip,
handle_fasteoi_irq, "fasteoi");
- else
+ else {
+ irq_desc[irq].status |= IRQ_DELAYED_DISABLE;
set_irq_chip_and_handler_name(irq, &ioapic_chip,
handle_edge_irq, "edge");
+ }
}
static void __init setup_IO_APIC_irqs(void)
next prev parent reply other threads:[~2006-11-14 17:53 UTC|newest]
Thread overview: 91+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-11-08 2:33 Linux 2.6.19-rc5 Linus Torvalds
[not found] ` <20061108085235.GT4729@stusta.de>
2006-11-08 9:29 ` [discuss] 2.6.19-rc5: known regressions Jan Beulich
2006-11-08 10:21 ` Adrian Bunk
2006-11-08 9:34 ` Jens Axboe
2006-11-08 19:09 ` Alex Romosan
2006-11-08 19:29 ` Jens Axboe
2006-11-08 19:38 ` Alex Romosan
2006-11-08 19:45 ` Jens Axboe
2006-11-08 21:40 ` Alex Romosan
2006-11-08 20:03 ` Arjan van de Ven
2006-11-08 20:19 ` Jens Axboe
2006-11-08 11:04 ` Eric W. Biederman
2006-11-08 11:32 ` Thomas Gleixner
[not found] ` <7813413.118221162987983254.komurojun-mbn@nifty.com>
2006-11-08 16:00 ` Linus Torvalds
2006-11-10 12:42 ` Re: Re: 2.6.19-rc5: known regressions :SMP kernel can not generate ISA irq Komuro
2006-11-13 16:02 ` Linus Torvalds
2006-11-13 17:11 ` Eric W. Biederman
2006-11-13 20:44 ` Ingo Molnar
2006-11-13 21:11 ` Eric W. Biederman
2006-11-14 8:14 ` [patch] irq: do not mask interrupts by default Ingo Molnar
2006-11-14 8:20 ` Arjan van de Ven
2006-11-14 16:10 ` Linus Torvalds
2006-11-14 17:52 ` Eric W. Biederman [this message]
2006-11-14 23:35 ` [PATCH] Use delayed disable mode of ioapic edge triggered interrupts Linus Torvalds
2006-11-15 1:17 ` Linus Torvalds
2006-11-15 5:14 ` Eric W. Biederman
2006-11-15 16:06 ` Linus Torvalds
2006-11-15 16:58 ` Eric W. Biederman
2006-11-15 12:40 ` Komuro
[not found] ` <20061115090427.GA16173@elte.hu>
2006-11-15 16:13 ` [patch] genirq: do not mask interrupts by default Linus Torvalds
2006-11-15 17:46 ` Ingo Molnar
2006-11-14 12:43 ` [patch] irq: " Komuro
[not found] ` <m1y7qm425l.fsf@ebiederm.dsl.xmission.com>
[not found] ` <Pine.LNX.4.64.0611080745150.3667@g5.osdl.org>
2006-11-08 16:22 ` 2.6.19-rc5: known regressions Adrian Bunk
2006-11-08 23:11 ` Tim Chen
2006-11-09 2:49 ` Tim Chen
2006-11-09 5:10 ` Eric W. Biederman
2006-11-13 22:46 ` Tim Chen
2006-11-14 0:03 ` Eric W. Biederman
2006-11-08 9:43 ` Linux 2.6.19-rc5 Nigel Cunningham
2006-11-08 9:59 ` Alessandro Suardi
2006-11-08 10:04 ` Nigel Cunningham
2006-11-08 14:19 ` Gene Heskett
2006-11-08 15:43 ` Linus Torvalds
[not found] ` <20061111015035.GU4729@stusta.de>
2006-11-11 9:08 ` [discuss] 2.6.19-rc5: known regressions (v2) Rafael J. Wysocki
2006-11-11 9:25 ` Paolo Ornati
2006-11-11 10:49 ` Rafael J. Wysocki
2006-11-11 12:29 ` Paolo Ornati
2006-11-14 16:44 ` Paolo Ornati
2006-11-29 10:10 ` [SOLVED] " Paolo Ornati
2006-11-13 22:14 ` 2.6.19-rc5: known regressions with patches Adrian Bunk
2006-11-13 22:56 ` Brian King
2006-11-13 23:15 ` Linus Torvalds
2006-11-14 2:35 ` Jeff Garzik
2006-11-15 10:21 ` 2.6.19-rc5: known regressions (v3) Adrian Bunk
2006-11-15 10:35 ` Jens Axboe
2006-11-15 10:53 ` Adrian Bunk
2006-11-15 10:35 ` Eric Dumazet
2006-11-15 10:50 ` Andi Kleen
2006-11-15 16:40 ` William Cohen
2006-11-15 16:48 ` [discuss] " Andi Kleen
2006-11-15 18:39 ` Andrew Morton
2006-11-15 18:45 ` Andi Kleen
2006-11-15 19:07 ` Linus Torvalds
2006-11-15 19:23 ` Andi Kleen
2006-11-15 20:21 ` Andrew Morton
2006-11-15 21:18 ` Eric W. Biederman
2006-11-15 21:31 ` Andrew Morton
2006-11-16 10:55 ` Mikael Pettersson
2006-11-16 20:23 ` Andrew Morton
2006-11-17 9:59 ` Mikael Pettersson
2006-11-17 10:13 ` Andrew Morton
2006-11-19 3:05 ` Bill Davidsen
2006-11-17 10:29 ` Andi Kleen
2006-11-16 3:21 ` Andi Kleen
2006-11-16 5:05 ` Andrew Morton
2006-11-16 7:04 ` Andi Kleen
2006-11-16 15:34 ` William Cohen
2006-11-16 15:47 ` Andi Kleen
2006-11-16 21:32 ` Stephane Eranian
2006-11-22 10:28 ` Eric Dumazet
2006-11-22 10:36 ` Andi Kleen
2006-11-22 18:42 ` Andrew Morton
2006-12-16 11:20 ` Ray Lee
2006-11-22 17:59 ` William Cohen
2006-11-22 18:05 ` William Cohen
2006-11-22 18:26 ` Eric Dumazet
2006-11-15 11:06 ` Brice Goglin
2006-11-15 22:32 ` Adrian Bunk
2006-11-15 12:07 ` Alan
2006-11-15 15:52 ` Stephen Hemminger
2006-11-15 16:35 ` 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=m18xidlxv7.fsf_-_@ebiederm.dsl.xmission.com \
--to=ebiederm@xmission.com \
--cc=akpm@osdl.org \
--cc=bunk@stusta.de \
--cc=komurojun-mbn@nifty.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=torvalds@osdl.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
all inboxes | Powered by JetHome®