All of lore.kernel.org
 help / color / mirror / Atom feed
From: Manfred Spraul <manfred@colorfullife.com>
To: Martin Josefsson <gandalf@wlug.westbo.se>
Cc: macro@ds2.pg.gda.pl, linux-kernel@vger.kernel.org
Subject: Re: APIC lockup in 2.4.x-x
Date: Tue, 06 Feb 2001 18:17:30 +0100	[thread overview]
Message-ID: <3A8031AA.1FFDF6AE@colorfullife.com> (raw)
In-Reply-To: <Pine.LNX.4.21.0102061559520.25695-100000@tux.rsn.hk-r.se>

[-- Attachment #1: Type: text/plain, Size: 727 bytes --]

Martin Josefsson wrote:
> 
> Hi
> 
> I saw your patch for the APIC lockup and I saw that it was included in
> 2.4.1-ac2 so I tried that one.. but it didn't help..
> 
> I can begin with describing my machine:
> 
> dual pIII 800 (133MHz FSB)
> Asus P3C-D mainboard with i820 chipset
> 256MB rimm (rambus)
> Dlink DFE570TX (4 port tulip card)
> Adaptec 29160 scsicard and 18GB scsidisk.
>

Could you apply the attached patch, enable sysrq, compile & install the
kernel, reboot and press sysrq-q after ifup?

We assumed that only the old io apic for 440 BX boards is affected, but
your board contains a newer apic intrated in the ICH.

But probably you ran into another bug - the tulip driver doesn't use
disable_irq()

--
	Manfred

[-- Attachment #2: u4u5 --]
[-- Type: text/plain, Size: 2365 bytes --]

// $Header$
// Kernel Version:
//  VERSION = 2
//  PATCHLEVEL = 4
//  SUBLEVEL = 1
//  EXTRAVERSION =
--- 2.4/drivers/net/tulip/tulip_core.c	Sat Feb  3 14:02:54 2001
+++ build-2.4/drivers/net/tulip/tulip_core.c	Sat Feb  3 14:04:58 2001
@@ -421,6 +421,24 @@
 
 	tulip_up (dev);
 
+	disable_irq(dev->irq);
+	set_current_state(TASK_UNINTERRUPTIBLE);
+	schedule_timeout(10);
+
+{
+	long ioaddr = dev->base_addr;
+	long csr7 = inl(ioaddr + CSR7);
+	outl(NormalIntr|AbnormalIntr|TPLnkPass|TPLnkFail, ioaddr + CSR7);
+	set_current_state(TASK_UNINTERRUPTIBLE);
+	schedule_timeout(10);
+	enable_irq(dev->irq);
+
+	set_current_state(TASK_UNINTERRUPTIBLE);
+	schedule_timeout(10);
+	outl(csr7, ioaddr + CSR7);
+
+}
+
 	netif_start_queue (dev);
 
 	return 0;
--- 2.4/arch/i386/kernel/io_apic.c	Sat Feb  3 14:02:24 2001
+++ build-2.4/arch/i386/kernel/io_apic.c	Sat Feb  3 14:54:14 2001
@@ -693,7 +693,7 @@
 	printk(KERN_WARNING "          to linux-smp@vger.kernel.org\n");
 }
 
-void __init print_IO_APIC(void)
+void print_IO_APIC(void)
 {
 	int apic, i;
 	struct IO_APIC_reg_00 reg_00;
@@ -1189,14 +1189,22 @@
 
 #define shutdown_level_ioapic_irq	mask_IO_APIC_irq
 #define enable_level_ioapic_irq		unmask_IO_APIC_irq
-#define disable_level_ioapic_irq	mask_IO_APIC_irq
+static void disable_level_ioapic_irq(unsigned int i)
+{
+	/* delayed. */
+}
 
 static void end_level_ioapic_irq (unsigned int i)
 {
 	ack_APIC_irq();
 }
 
-static void mask_and_ack_level_ioapic_irq (unsigned int i) { /* nothing */ }
+static void mask_and_ack_level_ioapic_irq (unsigned int i)
+{
+	if (irq_desc[i].status & IRQ_DISABLED) {
+		mask_IO_APIC_irq(i);
+	}
+}
 
 static void set_ioapic_affinity (unsigned int irq, unsigned long mask)
 {
--- 2.4/arch/i386/kernel/apic.c	Sat Feb  3 14:02:24 2001
+++ build-2.4/arch/i386/kernel/apic.c	Sat Feb  3 14:42:47 2001
@@ -270,7 +270,7 @@
 	 *   PCI Ne2000 networking cards and PII/PIII processors, dual
 	 *   BX chipset. ]
 	 */
-#if 0
+#if 1
 	/* Enable focus processor (bit==0) */
 	value &= ~(1<<9);
 #else
--- 2.4/drivers/char/sysrq.c	Mon Dec  4 02:48:19 2000
+++ build-2.4/drivers/char/sysrq.c	Sat Feb  3 14:33:51 2001
@@ -137,6 +137,10 @@
 		send_sig_all(SIGKILL, 1);
 		orig_log_level = 8;
 		break;
+	case 'q':
+		print_all_local_APICs();
+		print_IO_APIC();
+		break;
 	default:					    /* Unknown: help */
 		if (kbd)
 			printk("unRaw ");









  reply	other threads:[~2001-02-06 17:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-02-06 15:14 APIC lockup in 2.4.x-x Martin Josefsson
2001-02-06 17:17 ` Manfred Spraul [this message]
2001-02-06 18:10   ` Martin Josefsson
2001-02-07 17:24   ` Martin Josefsson

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=3A8031AA.1FFDF6AE@colorfullife.com \
    --to=manfred@colorfullife.com \
    --cc=gandalf@wlug.westbo.se \
    --cc=linux-kernel@vger.kernel.org \
    --cc=macro@ds2.pg.gda.pl \
    /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.