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