Frank de Lange wrote:
>
> On Fri, Jan 12, 2001 at 06:16:36PM +0100, Manfred Spraul wrote:
> > I would first concentrate on the differences between 2.2 and 2.4:
> >
> > Frank, could you try what happens with the NMI oopser disabled?
>
> Here's the results with nmi_watchdog=0
>
>
> After network hang (nmi_watchdog=0)
> ===================================
>
It still hangs.
Frank, I've attached a proposed kick_IOAPIC pin. Could you try it?
I'm rebooting with that patch right now.
-- Manfred --------------19C27FC008B04CB8FB347F1A Content-Type: text/plain; charset=us-ascii; name="patch-frank" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="patch-frank"1) add to the end of io_apic.c:
static void print_line(struct IO_APIC_route_entry* entry) { printk(KERN_EMERG " %02x %03X %02X ", 0, entry->dest.logical.logical_dest, entry->dest.physical.physical_dest );
printk("%1d %1d %1d %1d %1d %1d %1d %02X\n", entry->mask, entry->trigger, entry->irr, entry->polarity, entry->delivery_status, entry->dest_mode, entry->delivery_mode, entry->vector ); }
void kick_IOAPIC_pin(int pin) { unsigned long flags; struct IO_APIC_route_entry entry;
local_irq_save(flags);
*(((int *)&entry) + 1) = io_apic_read(0, 0x11 + 2 * pin); *(((int *)&entry) + 0) = io_apic_read(0, 0x10 + 2 * pin);
printk(KERN_EMERG " NR Log Phy Mask Trig IRR Pol" " Stat Dest Deli Vect: \n"); printk(KERN_EMERG "Before:\n"); print_line(&entry);
entry.trigger = 0; io_apic_write(0, 0x11 + 2 * pin, *(((int *)&entry) + 1)); io_apic_write(0, 0x10 + 2 * pin, *(((int *)&entry) + 0)); udelay(10); printk(KERN_EMERG "After switching to edge:\n"); print_line(&entry);
entry.trigger = 1; io_apic_write(0, 0x11 + 2 * pin, *(((int *)&entry) + 1)); io_apic_write(0, 0x10 + 2 * pin, *(((int *)&entry) + 0)); udelay(10); printk(KERN_EMERG "After switch back:\n"); print_line(&entry);
local_irq_restore(flags); }
2) add to sysrq.c: --- 2.4/drivers/char/sysrq.c Mon Dec 4 02:48:19 2000 +++ build-2.4/drivers/char/sysrq.c Fri Jan 12 18:37:57 2001 @@ -137,6 +137,9 @@ send_sig_all(SIGKILL, 1); orig_log_level = 8; break; + case 'q': + kick_IOAPIC_pin(19); + default: /* Unknown: help */ if (kbd) printk("unRaw ");
--------------19C27FC008B04CB8FB347F1A--
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/