LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [patch] io-apic cleanup #2, BK-curr
@ 2004-05-27 13:21 Ingo Molnar
2004-05-27 13:31 ` [patch] io-apic cleanup #3, BK-curr Ingo Molnar
0 siblings, 1 reply; 3+ messages in thread
From: Ingo Molnar @ 2004-05-27 13:21 UTC (permalink / raw)
To: Andrew Morton; +Cc: macro, linux-kernel
the patch below gets rid of APIC_LOCKUP_DEBUG. It has been in the kernel
for more than 3 years and the message was only reported once during that
period of time - and even in that case it was a side-effect of a really
bad crash. The lockup workaround works, the debugging code can be moved
out.
Ingo
Signed-off-by: Ingo Molnar <mingo@elte.hu>
--- linux/arch/i386/kernel/io_apic.c.orig
+++ linux/arch/i386/kernel/io_apic.c
@@ -41,8 +41,6 @@
#include "io_ports.h"
-#define APIC_LOCKUP_DEBUG
-
static spinlock_t ioapic_lock = SPIN_LOCK_UNLOCKED;
/*
@@ -1858,30 +1856,11 @@ static void end_level_ioapic_irq (unsign
ack_APIC_irq();
if (!(v & (1 << (i & 0x1f)))) {
-#ifdef APIC_LOCKUP_DEBUG
- struct irq_pin_list *entry;
-#endif
-
#ifdef APIC_MISMATCH_DEBUG
atomic_inc(&irq_mis_count);
#endif
spin_lock(&ioapic_lock);
__mask_and_edge_IO_APIC_irq(irq);
-#ifdef APIC_LOCKUP_DEBUG
- for (entry = irq_2_pin + irq;;) {
- unsigned int reg;
-
- if (entry->pin == -1)
- break;
- reg = io_apic_read(entry->apic, 0x10 + entry->pin * 2);
- if (reg & 0x00004000)
- printk(KERN_CRIT "Aieee!!! Remote IRR"
- " still set after unlock!\n");
- if (!entry->next)
- break;
- entry = irq_2_pin + entry->next;
- }
-#endif
__unmask_and_level_IO_APIC_irq(irq);
spin_unlock(&ioapic_lock);
}
^ permalink raw reply [flat|nested] 3+ messages in thread
* [patch] io-apic cleanup #3, BK-curr
2004-05-27 13:21 [patch] io-apic cleanup #2, BK-curr Ingo Molnar
@ 2004-05-27 13:31 ` Ingo Molnar
2004-05-27 16:08 ` Maciej W. Rozycki
0 siblings, 1 reply; 3+ messages in thread
From: Ingo Molnar @ 2004-05-27 13:31 UTC (permalink / raw)
To: Andrew Morton; +Cc: macro, linux-kernel, Pavel Machek
the patch below gets rid of io_apic_sync().
io_apic_sync() was introduced in 2.1.104 and it was originally done for
masking and unmasking as well. Later the unmasking use got removed but
the masking use lingered around. I dont think it was ever justified to
do it and clearly since the lack of io_apic_sync() didnt break some of
the other writes we do to the IO-APIC registers, it must be unnecessary
in the masking case too. Maciej?
Ingo
Signed-off-by: Ingo Molnar <mingo@elte.hu>
--- linux/arch/i386/kernel/io_apic.c.orig
+++ linux/arch/i386/kernel/io_apic.c
@@ -145,10 +145,7 @@ static void __modify_IO_APIC_irq (unsign
/* mask = 1 */
static void __mask_IO_APIC_irq (unsigned int irq)
{
- struct irq_pin_list *entry = irq_2_pin + irq;
__modify_IO_APIC_irq(irq, 0x00010000, 0);
- /* Is it needed? Or do others need it too? */
- io_apic_sync(entry->apic);
}
/* mask = 0 */
--- linux/include/asm-i386/io_apic.h.orig
+++ linux/include/asm-i386/io_apic.h
@@ -188,15 +188,6 @@ static inline void io_apic_modify(unsign
*(IO_APIC_BASE(apic)+4) = value;
}
-/*
- * Synchronize the IO-APIC and the CPU by doing
- * a dummy read from the IO-APIC
- */
-static inline void io_apic_sync(unsigned int apic)
-{
- (void) *(IO_APIC_BASE(apic)+4);
-}
-
/* 1 if "noapic" boot option passed */
extern int skip_ioapic_setup;
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch] io-apic cleanup #3, BK-curr
2004-05-27 13:31 ` [patch] io-apic cleanup #3, BK-curr Ingo Molnar
@ 2004-05-27 16:08 ` Maciej W. Rozycki
0 siblings, 0 replies; 3+ messages in thread
From: Maciej W. Rozycki @ 2004-05-27 16:08 UTC (permalink / raw)
To: Ingo Molnar; +Cc: Andrew Morton, linux-kernel, Pavel Machek
On Thu, 27 May 2004, Ingo Molnar wrote:
> io_apic_sync() was introduced in 2.1.104 and it was originally done for
> masking and unmasking as well. Later the unmasking use got removed but
> the masking use lingered around. I dont think it was ever justified to
> do it and clearly since the lack of io_apic_sync() didnt break some of
> the other writes we do to the IO-APIC registers, it must be unnecessary
> in the masking case too. Maciej?
Go ahead, sure.
--
+ Maciej W. Rozycki, Technical University of Gdansk, Poland +
+--------------------------------------------------------------+
+ e-mail: macro@ds2.pg.gda.pl, PGP key available +
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2004-05-27 16:08 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-05-27 13:21 [patch] io-apic cleanup #2, BK-curr Ingo Molnar
2004-05-27 13:31 ` [patch] io-apic cleanup #3, BK-curr Ingo Molnar
2004-05-27 16:08 ` Maciej W. Rozycki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).