tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: interrupt storm on int19



On Fri, Nov 07, 2008 at 12:58:15PM +0100, Geert Hendrickx wrote:
> Hi,
> 
> my Dell Inspiron 530 pc hangs at boot due to an interrupt storm on int 19.
> This is with NetBSD-current and 5.0_STABLE, both i386 and amd64 ports.
> 
> Here are the last few output lines from a hanging MPVERBOSE kernel:
> 
> ioapic0: int1 68<vector=68,delomde=0,dest=0> 0<target=0>
> pckbc0: using irq 1 for kbd slot
> wskbd0 at pckbd0: console keyboard, using wsdisplay0
> fdc0 at isa0 port 0x3f0=0x3f7 irq 6 drq 2
> ioapic0: int6 69<vector=69,delmode=0,dest=0> 0<target=0>
> timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
> timecounter: Timecounter "TSC" frequency 2660144320 Hz quality -100
> 
> If I disable the uhci and ehci drivers in the kernel, I can get into ddb
> at that point, and "show event" shows a rapidly increasing int 19, which
> is where uhci2, uhci4, piixide0 and piixide1 (or ahcisata0, if I change
> the disk mode in the BIOS from IDE to RAID) attach to.
> 
> Two workarounds make the system boot completely and run stable:
> 
> - disable USB in the BIOS
> 
> - boot -1, ie. UP instead of SMP kernel (this is how I am using this
>   system right now)
> 
> The dmesg from an amd64 5.0_STABLE kernel with boot -1 is attached.
> 
> Any ideas how to fix this, so I can fully use this machine with USB _and_
> SMP enabled? :-)
> 
> Thanks,
> 
>       Geert



Here's the output of acpidump(8) if it helps.  Unfortunately it coredumps
halfway...

        Geert


/*
RSD PTR: Checksum=145, OEMID=DELL, RsdtAddress=0xcfee3000
 */
/*
RSDT: Length=64, Revision=1, Checksum=253,
        OEMID=DELL, OEM Table ID=FX09, OEM Revision=0x42302e31,
        Creator ID=AWRD, Creator Revision=0x0
 */
/*
        Entries={ 0xcfee3180, 0xcfee73c0, 0xcfee7400, 0xcfee7440, 0xcfee75c0, 
0xcfee7300, 0xcfee7f60 }
 */
/*
        DSDT=0xcfee3200
        INT_MODEL=APIC
        SCI_INT=9
        SMI_CMD=0xb2, ACPI_ENABLE=0xa1, ACPI_DISABLE=0xa0, S4BIOS_REQ=0x0
        PM1a_EVT_BLK=0x400-0x403
        PM1a_CNT_BLK=0x404-0x405
        PM2_TMR_BLK=0x408-0x40b
        PM2_GPE0_BLK=0x420-0x42f
        P_LVL2_LAT=101ms, P_LVL3_LAT=1001ms
        FLUSH_SIZE=0, FLUSH_STRIDE=0
        DUTY_OFFSET=1, DUTY_WIDTH=1
        DAY_ALRM=13, MON_ALRM=0, CENTURY=0
        Flags={WBINVD,PROC_C1,SLP_BUTTON,RTC_S4}
 */
/*
DSDT: Length=16380, Revision=1, Checksum=80,
        OEMID=DELL, OEM Table ID=AWRDACPI, OEM Revision=0x1000,
        Creator ID=MSFT, Creator Revision=0x3000000
 */
DefinitionBlock ("acpi_dst.aml", "DSDT", 0x1, "DELL", "AWRDACPI", 0x1000)
{
Scope(\_PR) {
    Processor(\_PR.CPU0, 0, 0x0, 0x0) {
    }
    Processor(\_PR.CPU1, 1, 0x0, 0x0) {
    }
    Processor(\_PR.CPU2, 2, 0x0, 0x0) {
    }
    Processor(\_PR.CPU3, 3, 0x0, 0x0) {
    }
}
Name(\_S0, Package(0x04) {
    0x00,
    0x00,
    0x00,
    0x00,
})
Name(\_S3, Package(0x04) {
    0x05,
    0x00,
    0x00,
    0x00,
})
Name(\_S4, Package(0x04) {
    0x06,
    0x00,
    0x00,
    0x00,
})
Name(\_S5, Package(0x04) {
    0x07,
    0x00,
    0x00,
    0x00,
})
Name(FLAG, 0x00)
Name(STAT, 0x00)
OperationRegion(\DEBG, SystemIO, 0x80, 0x01)
Field(\DEBG, ByteAcc, NoLock, Preserve) {
    DBG1,       8
}
OperationRegion(RCRB, SystemMemory, 0xfed1c000, 0x4000)
Field(RCRB, DWordAcc, Lock, Preserve) {
    Offset(0x3404),
    ,   7,
    HPTF,       1
}
OperationRegion(ELKM, SystemMemory, 0x000fffea, 0x01)
Field(ELKM, ByteAcc, NoLock, Preserve) {
    ,   1,
    ,   1,
    ELSO,       1,
    ,   1,
    ,   1,
    ,   1,
    ,   1
}
OperationRegion(EXTM, SystemMemory, 0x000ff830, 0x10)
Field(EXTM, WordAcc, NoLock, Preserve) {
    ROM1,       16,
    RMS1,       16,
    ROM2,       16,
    RMS2,       16,
    ROM3,       16,
    RMS3,       16,
    AMEM,       32
}
OperationRegion(\SMIC, SystemIO, 0xb2, 0x01)
Field(\SMIC, ByteAcc, NoLock, Preserve) {
    SCP,        8
}
OperationRegion(TCOI, SystemIO, 0x0460, 0x08)
Field(TCOI, WordAcc, NoLock, Preserve) {
    Offset(0x4),
    ,   9,
    SCIS,       1,
    Offset(0x6)
}
OperationRegion(\PM1S, SystemIO, 0x0400, 0x04)
Field(\PM1S, ByteAcc, NoLock, Preserve) {
    PM00,       8,
    PM01,       8,
    PM02,       8,
    PM03,       8
}
OperationRegion(\PM2S, SystemIO, 0x0429, 0x01)
Field(\PM2S, ByteAcc, NoLock, Preserve) {
    ,   1,
    PM29,       1
}
OperationRegion(\SPEN, SystemIO, 0x0430, 0x01)
Field(\SPEN, ByteAcc, NoLock, Preserve) {
    ,   4,
    TRAP,       1
}
OperationRegion(\GBLE, SystemIO, 0x0421, 0x01)
Field(\GBLE, ByteAcc, NoLock, Preserve) {
    ESMI,       8
}
OperationRegion(APMP, SystemIO, 0xb2, 0x02)
Field(APMP, ByteAcc, NoLock, Preserve) {
    APMC,       8,
    APMD,       8
}
OperationRegion(\GPO, SystemIO, 0x048c, 0x04)
Field(\GPO, ByteAcc, NoLock, Preserve) {
    GO00,       1,
    GO01,       1,
    GO02,       1,
    GO03,       1,
    GO04,       1,
    GO05,       1,
    GO06,       1,
    GO07,       1,
    GO08,       1,
    GO09,       1,
    GO0A,       1,
    GO0B,       1,
    GO0C,       1,
    GO0D,       1,
    GO0E,       1,
    GO0F,       1,
    GO10,       1,
    GO11,       1,
    GO12,       1,
    GO13,       1,
    GO14,       1,
    GO15,       1,
    GO16,       1,
    GO17,       1,
    GO18,       1,
    GO19,       1,
    GO1A,       1,
    GO1B,       1,
    GO1C,       1,
    GO1D,       1,
    GO1E,       1,
    GO1F,       1
}
OperationRegion(\GPO2, SystemIO, 0x04b8, 0x04)
Field(\GPO2, ByteAcc, NoLock, Preserve) {
    GO20,       1,
    GO21,       1,
    GO22,       1,
    GO23,       1,
    GO24,       1,
    GO25,       1,
    GO26,       1,
    GO27,       1,
    ,   1,
    ,   1,
    ,   1,
    ,   1,
    ,   1,
    ,   1,
    ,   1,
    Offset(0x2),
    GO30,       1,
    GO31,       1
}
Name(OSFX, 0x01)
Name(OSFL, 0x01)
Method(STRC, 2) {
    If(LNot(LEqual(SizeOf(Arg0), SizeOf(Arg1)))) {
        Return(0x00)
    }
    Add(SizeOf(Arg0), 0x01, Local0)
    Name(BUF0, Buffer(Local0) { })
    Name(BUF1, Buffer(Local0) { })
    Store(Arg0, BUF0)
    Store(Arg1, BUF1)
    While(Local0) {
        Decrement(Local0)
        If(LNot(LEqual(DerefOf(Index(BUF0, Local0, )), DerefOf(Index(BUF1, 
Local0, ))))) {
            Return(Zero)
        }
    }
    Return(One)
}
OperationRegion(RTCM, SystemIO, 0x70, 0x02)
Field(RTCM, ByteAcc, NoLock, Preserve) {
    CMIN,       8,
    CMDA,       8
}
IndexField(CMIN, CMDA, ByteAcc, NoLock, Preserve) {
    Offset(0xf),
    SHUT,       8
}
OperationRegion(INFO, SystemMemory, 0x000ff840, 0x01)
Field(INFO, ByteAcc, NoLock, Preserve) {
    KBDI,       1,
    RTCW,       1,
    PS2F,       1,
    IRFL,       2,
    DISE,       1,
    SSHU,       1,
    AWMD,       1
}
OperationRegion(BEEP, SystemIO, 0x61, 0x01)
Field(BEEP, ByteAcc, NoLock, Preserve) {
    S1B,        8
}
OperationRegion(CONT, SystemIO, 0x40, 0x04)
Field(CONT, ByteAcc, NoLock, Preserve) {
    CNT0,       8,
    CNT1,       8,
    CNT2,       8,
    CTRL,       8
}
Method(SPKR, 1) {
    Store(S1B, Local0)
    Store(0xb6, CTRL)
    Store(0x55, CNT2)
    Store(0x03, CNT2)
    Store(Arg0, Local2)
    While(LGreater(Local2, 0x00)) {
        Or(S1B, 0x03, S1B)
        Store(0x5fff, Local3)
        While(LGreater(Local3, 0x00)) {
            Decrement(Local3)
        }
        And(S1B, 0xfc, S1B)
        Store(0x0eff, Local3)
        While(LGreater(Local3, 0x00)) {
            Decrement(Local3)
        }
        Decrement(Local2)
    }
    Store(Local0, S1B)
}
Scope(\) {
    Name(PICF, 0x00)
    Method(_PIC, 1) {
        Store(Arg0, PICF)
    }
}
Method(\_PTS, 1) {
    Or(Arg0, 0xf0, Local0)
    Store(Local0, DBG1)
    Store(0x01, PM29)
    If(LNot(LEqual(VID0, 0xffff))) {
        If(LEqual(And(RSR0, 0x01, ), 0x01)) {
            Or(RSR0, 0x01, RSR0)
            Or(PMC0, 0x80, PMC0)
        }
    }
    If(LNot(LEqual(VID1, 0xffff))) {
        If(LEqual(And(RSR1, 0x01, ), 0x01)) {
            Or(RSR1, 0x01, RSR1)
            Or(PMC1, 0x80, PMC1)
        }
    }
    If(LNot(LEqual(VID2, 0xffff))) {
        If(LEqual(And(RSR2, 0x01, ), 0x01)) {
            Or(RSR2, 0x01, RSR2)
            Or(PMC2, 0x80, PMC2)
        }
    }
    If(LNot(LEqual(VID3, 0xffff))) {
        If(LEqual(And(RSR3, 0x01, ), 0x01)) {
            Or(RSR3, 0x01, RSR3)
            Or(PMC3, 0x80, PMC3)
        }
    }
    OSTP()
    If(LEqual(Arg0, 0x01)) {
        SFAN(Zero)
    }
    If(LEqual(Arg0, 0x03)) {
    }
    If(LEqual(Arg0, 0x05)) {
        Store(ESMI, Local0)
        And(Local0, 0xfb, Local0)
        Store(Local0, ESMI)
    }
    If(LEqual(Arg0, 0x04)) {
        If(LNot(PICF)) {
            Sleep(0x64)
        }
    }
}
Method(\_WAK, 1) {
    Store(0xff, DBG1)
    If(LEqual(Arg0, 0x03)) {
        Store(0x88, SCP)
    }
    SFAN(0xff)
    If(OSFL) {
        Notify(\_SB.PWRB, 0x02)
    }
    Else {
        If(LEqual(RTCW, 0x00)) {
            Notify(\_SB.PWRB, 0x02)
        }
    }
    Notify(\_SB.PCI0.USB0, 0x00)
    Notify(\_SB.PCI0.USB1, 0x00)
    Notify(\_SB.PCI0.USB2, 0x00)
    Notify(\_SB.PCI0.USB3, 0x00)
    Notify(\_SB.PCI0.USB4, 0x00)
    Notify(\_SB.PCI0.USB5, 0x00)
}
Scope(\_SI) {
    Method(_MSG, 1) {
        Store(Local0, Local0)
    }
    Method(_SST, 1) {
        Store(Local0, Local0)
    }
}
Scope(\_GPE) {
    Method(_L06) {
        If(\_SB.PCI0.IGD0.GSSE) {
            \_SB.PCI0.IGD0.OPRN()
        }
        Else {
            Store(0x01, SCIS)
        }
    }
    Method(_L03) {
        Notify(\_SB.PCI0.USB0, 0x02)
    }
    Method(_L04) {
        Notify(\_SB.PCI0.USB1, 0x02)
    }
    Method(_L0C) {
        Notify(\_SB.PCI0.USB2, 0x02)
    }
    Method(_L0E) {
        Notify(\_SB.PCI0.USB3, 0x02)
    }
    Method(_L05) {
        Notify(\_SB.PCI0.USB4, 0x02)
    }
    Method(_L20) {
        Notify(\_SB.PCI0.USB5, 0x02)
    }
    Method(_L0D) {
        Notify(\_SB.PCI0.EHC1, 0x02)
        Notify(\_SB.PCI0.EHC2, 0x02)
    }
    Method(_L0B) {
        Notify(\_SB.PCI0.HUB0, 0x02)
    }
    Method(_L08) {
    }
    Method(_L09) {
        If(LNot(LEqual(VID0, 0xffff))) {
            If(LEqual(And(RSR0, 0x01, ), 0x01)) {
                Store(0xff, RSR0)
                Store(0x80, PMC0)
                Notify(\_SB.PCI0.PEX0, 0x02)
            }
        }
        If(LNot(LEqual(VID1, 0xffff))) {
            If(LEqual(And(RSR1, 0x01, ), 0x01)) {
                Store(0xff, RSR1)
                Store(0x80, PMC1)
                Notify(\_SB.PCI0.PEX1, 0x02)
            }
        }
        If(LNot(LEqual(VID2, 0xffff))) {
            If(LEqual(And(RSR2, 0x01, ), 0x01)) {
                Store(0xff, RSR2)
                Store(0x80, PMC2)
                Notify(\_SB.PCI0.PEX2, 0x02)
            }
        }
        If(LNot(LEqual(VID3, 0xffff))) {
            If(LEqual(And(RSR3, 0x01, ), 0x01)) {
                Store(0xff, RSR3)
                Store(0x80, PMC3)
                Notify(\_SB.PCI0.PEX3, 0x02)
            }
        }
        If(LNot(LEqual(VID4, 0xffff))) {
            If(LEqual(And(RSR4, 0x01, ), 0x01)) {
                Store(0xff, RSR4)
                Store(0x80, PMC4)
                Notify(\_SB.PCI0.PEX4, 0x02)
            }
        }
        If(LNot(LEqual(VID5, 0xffff))) {
            If(LEqual(And(RSR5, 0x01, ), 0x01)) {
                Store(0xff, RSR5)
                Store(0x80, PMC5)
                Notify(\_SB.PCI0.PEX5, 0x02)
            }
        }
    }
}
Scope(\_SB) {
    Device(PWRB) {
        Name(_HID, 0x0c0cd041)
        Method(_STA) {
            Return(0x0b)
        }
    }
    Device(PCI0) {
        Name(_HID, 0x080ad041)
        Name(_CID, 0x030ad041)
        Name(_ADR, 0x00)
        Name(_UID, 0x01)
        Name(_BBN, 0x00)
        Method(_S3D) {
            If(LEqual(OSFL, 0x02)) {
                Return(0x02)
            }
            Else {
                Return(0x03)
            }
        }
        Method(_STA) {
            Return(0x0f)
        }
        Method(_CRS) {
            Name(BUF0, Buffer(0x88) {0x88, 0xd, 0x0, 0x2, 0x1, 0x0, 0x0, 0x0, 
0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x1, 0x47, 0x1, 0xf8, 0xc, 0xf8, 0xc, 0x1, 
0x8, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0xf7, 0xc, 0x0, 0x0, 
0xf8, 0xc, 0x88, 0xd, 0x0, 0x1, 0xc, 0x3, 0x0, 0x0, 0x0, 0xd, 0xff, 0xff, 0x0, 
0x0, 0x0, 0xf3, 0x87, 0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 
0xa, 0x0, 0xff, 0xff, 0xb, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x87, 
0x17, 0x0, 0x0, 0xc, 0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0, 0xff, 0xff, 
0xd, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x2, 0x0, 0x87, 0x17, 0x0, 0x0, 0xc, 
0x3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x0, 0xff, 0xff, 0xbf, 0xfe, 0x0, 0x0, 
0x0, 0x0, 0x0, 0x0, 0xf0, 0xff, 0x79, 0x0 })
            CreateDWordField(BUF0, 0x76, TCMM)
            CreateDWordField(BUF0, 0x82, TOMM)
            Add(AMEM, 0x00060000, TCMM)
            Add(TCMM, 0x00010000, TCMM)
            Subtract(0xfec00000, TCMM, TOMM)
            Return(BUF0)
        }
        Name(PICM, Package(0x1a) {
            Package(0x04) {
                0x0002ffff,
                0x00,
                \_SB.PCI0.LNKA,
                0x00,
            },
            Package(0x04) {
                0x0002ffff,
                0x01,
                \_SB.PCI0.LNKB,
                0x00,
            },
            Package(0x04) {
                0x0002ffff,
                0x02,
                \_SB.PCI0.LNKC,
                0x00,
            },
            Package(0x04) {
                0x0002ffff,
                0x03,
                \_SB.PCI0.LNKD,
                0x00,
            },
            Package(0x04) {
                0x001bffff,
                0x00,
                \_SB.PCI0.LNK0,
                0x00,
            },
            Package(0x04) {
                0x0019ffff,
                0x00,
                \_SB.PCI0.LNKE,
                0x00,
            },
            Package(0x04) {
                0x0001ffff,
                0x00,
                \_SB.PCI0.LNKA,
                0x00,
            },
            Package(0x04) {
                0x0001ffff,
                0x01,
                \_SB.PCI0.LNKB,
                0x00,
            },
            Package(0x04) {
                0x0001ffff,
                0x02,
                \_SB.PCI0.LNKC,
                0x00,
            },
            Package(0x04) {
                0x0001ffff,
                0x03,
                \_SB.PCI0.LNKD,
                0x00,
            },
            Package(0x04) {
                0x001cffff,
                0x00,
                \_SB.PCI0.LNKA,
                0x00,
            },
            Package(0x04) {
                0x001cffff,
                0x01,
                \_SB.PCI0.LNKB,
                0x00,
            },
            Package(0x04) {
                0x001cffff,
                0x02,
                \_SB.PCI0.LNKC,
                0x00,
            },
            Package(0x04) {
                0x001cffff,
                0x03,
                \_SB.PCI0.LNKD,
                0x00,
            },
            Package(0x04) {
                0x001cffff,
                0x00,
                \_SB.PCI0.LNKB,
                0x00,
            },
            Package(0x04) {
                0x001cffff,
                0x01,
                \_SB.PCI0.LNKA,
                0x00,
            },
            Package(0x04) {
                0x001dffff,
                0x00,
                \_SB.PCI0.LNK1,
                0x00,
            },
            Package(0x04) {
                0x001dffff,
                0x01,
                \_SB.PCI0.LNKD,
                0x00,
            },
            Package(0x04) {
                0x001dffff,
                0x02,
                \_SB.PCI0.LNKC,
                0x00,
            },
            Package(0x04) {
                0x001affff,
                0x00,
                \_SB.PCI0.LNKA,
                0x00,
            },
            Package(0x04) {
                0x001affff,
                0x01,
                \_SB.PCI0.LNKF,
                0x00,
            },
            Package(0x04) {
                0x001affff,
                0x03,
                \_SB.PCI0.LNKD,
                0x00,
            },
            Package(0x04) {
                0x001affff,
                0x02,
                \_SB.PCI0.LNKC,
                0x00,
            },
            Package(0x04) {
                0x001fffff,
                0x00,
                \_SB.PCI0.LNKD,
                0x00,
            },
            Package(0x04) {
                0x001fffff,
                0x00,
                \_SB.PCI0.LNKD,
                0x00,
            },
            Package(0x04) {
                0x001fffff,
                0x01,
                \_SB.PCI0.LNKC,
                0x00,
            },
        })
        Name(APIC, Package(0x1a) {
            Package(0x04) {
                0x0002ffff,
                0x00,
                0x00,
                0x10,
            },
            Package(0x04) {
                0x0002ffff,
                0x01,
                0x00,
                0x11,
            },
            Package(0x04) {
                0x0002ffff,
                0x02,
                0x00,
                0x12,
            },
            Package(0x04) {
                0x0002ffff,
                0x03,
                0x00,
                0x13,
            },
            Package(0x04) {
                0x001bffff,
                0x00,
                0x00,
                0x16,
            },
            Package(0x04) {
                0x0019ffff,
                0x00,
                0x00,
                0x14,
            },
            Package(0x04) {
                0x0001ffff,
                0x00,
                0x00,
                0x10,
            },
            Package(0x04) {
                0x0001ffff,
                0x01,
                0x00,
                0x11,
            },
            Package(0x04) {
                0x0001ffff,
                0x02,
                0x00,
                0x12,
            },
            Package(0x04) {
                0x0001ffff,
                0x03,
                0x00,
                0x13,
            },
            Package(0x04) {
                0x001cffff,
                0x00,
                0x00,
                0x10,
            },
            Package(0x04) {
                0x001cffff,
                0x01,
                0x00,
                0x11,
            },
            Package(0x04) {
                0x001cffff,
                0x02,
                0x00,
                0x12,
            },
 


Home | Main Index | Thread Index | Old Index