sil3124 sata controller panics kernel

Dieter BSD dieterbsd at gmail.com
Tue Jul 29 17:07:18 UTC 2014


FreeBSD 8.2
AMD64

Has been running with jmb363 and sil3132 sata controllers for years.
siis(4) was last updated 2011-05-15.  The 363 died (reason unknown).
Bought 2 sil3124 cards Syba SY-PEX40008 PCIe-x1.  (the slots only
take x1 cards, and the 3124 has been recommended many times, I was
expecting it to "just work")

Boot to multiuser with 2 3124 cards and 1 3132 card (and 2 3726 PMs
connected to the 3132).  No drives connected to the 3124s.  System
running ok.  Hotplug a drive's sata data cable into a 3124 port.
(This works fine with 3132 with or without a PM.) 2-3 seconds later I
see a timeout message (common from siis(4)), and then the kernel panics.
Repeatable.  The 3124 is unusable.

I looked at the source code hoping to find a clue about the machine check trap,
but no joy.  What's going on?  How do I fix this?

<SiI3124 SATA controller> port 0x9c00-0x9c0f mem
0xfe8ff000-0xfe8ff07f,0xfe8f0000-0xfe8f7fff irq 17 at device 4.0 on
pci3
siis0: siis_resume() calling DELAY(10000)
siis0: [ITHREAD]
<SIIS channel> at channel 0 on siis0
siisch0: [ITHREAD]
<SIIS channel> at channel 1 on siis0
siisch1: [ITHREAD]
<SIIS channel> at channel 2 on siis0
siisch2: [ITHREAD]
<SIIS channel> at channel 3 on siis0
siisch3: [ITHREAD]
<ACPI PCI-PCI bridge> at device 12.0 on pci0
<ACPI PCI bus> on pcib4
<PCI-PCI bridge> irq 16 at device 0.0 on pci4
<PCI bus> on pcib5
<SiI3124 SATA controller> port 0x8c00-0x8c0f mem
0xfe6ff000-0xfe6ff07f,0xfe6f0000-0xfe6f7fff irq 16 at device 4.0 on
pci5
siis1: siis_resume() calling DELAY(10000)
siis1: [ITHREAD]
<SIIS channel> at channel 0 on siis1
siisch4: [ITHREAD]
<SIIS channel> at channel 1 on siis1
siisch5: [ITHREAD]
<SIIS channel> at channel 2 on siis1
siisch6: [ITHREAD]
<SIIS channel> at channel 3 on siis1
siisch7: [ITHREAD]

<SiI3132 SATA controller> port 0x6c00-0x6c7f mem
0xfe2ff000-0xfe2ff07f,0xfe2f8000-0xfe2fbfff irq 18 at device 0.0 on
pci7
siis2: siis_resume() calling DELAY(10000)
siis2: [ITHREAD]
<SIIS channel> at channel 0 on siis2
siisch8: [ITHREAD]
<SIIS channel> at channel 1 on siis2
siisch9: [ITHREAD]


siisch0: SIIS reset...
siisch0: siis_devreset() calling DELAY(100)
siisch0: siis_sata_connect() calling DELAY(100)
siisch0: siis_sata_connect() calling DELAY(100)
siisch0: siis_sata_connect() calling DELAY(100)
[ ... ]
siisch0: siis_sata_connect() calling DELAY(100)
siisch0: SATA connect timeout time=10000us status=00000000
siisch0: SIIS reset done: phy reset found no device
siisch1: SIIS reset...
siisch1: siis_devreset() calling DELAY(100)
siisch1: siis_sata_connect() calling DELAY(100)
siisch1: siis_sata_connect() calling DELAY(100)
[ ... ]
siisch1: siis_sata_connect() calling DELAY(100)
siisch1: SATA connect timeout time=10000us status=00000000
siisch1: SIIS reset done: phy reset found no device
siisch2: SIIS reset...
siisch2: siis_devreset() calling DELAY(100)
siisch2: siis_sata_connect() calling DELAY(100)
[ ... same again for sil3124 ports 3-7 ]
siisch7: siis_sata_connect() calling DELAY(100)
siisch7: SATA connect timeout time=10000us status=00000000
siisch7: SIIS reset done: phy reset found no device
siisch8: siis_wait_ready() calling DELAY(1000)   [ sil3132 ]
siisch9: siis_wait_ready() calling DELAY(1000)   [ sil3132 ]
pmp0 at siisch8 bus 0 scbus8 target 15 lun 0
pmp0: <Port Multiplier 37261095 1706> ATA-0 device
pmp0: 300.000MB/s transfers (SATA 2.x, NONE, PIO 8192bytes)
pmp1 at siisch9 bus 0 scbus9 target 15 lun 0
pmp1: <Port Multiplier 37261095 1706> ATA-0 device
pmp1: 300.000MB/s transfers (SATA 2.x, NONE, PIO 8192bytes)
pmp0: 5 fan-out ports
pmp1: 5 fan-out ports


Fatal trap 28: machine check trap while in kernel mode
instruction pointer     = 0x20:0xffffffff80904c1b
stack pointer           = 0x28:0xffffff8000033a50
frame pointer           = 0x28:0xffffff8000033a90
code segment            = base 0x0, limit 0xfffff, type 0x1b
                        = DPL 0, pres 1, long 1, def32 0, gran 1
processor eflags        = interrupt enabled, IOPL = 0
current process         = 12 (swi4: clock)
trap number             = 28
panic: machine check trap
KDB: stack backtrace:
#0 0xffffffff8030c93e at kdb_backtrace+0x5e
#1 0xffffffff802de7cd at panic+0x18d
#2 0xffffffff804e2380 at trap_fatal+0x260
#3 0xffffffff804e2965 at trap+0x115
#4 0xffffffff804cda74 at calltrap+0x8
#5 0xffffffff802f0de8 at softclock+0x2b8
#6 0xffffffff802b6ddb at intr_event_execute_handlers+0xfb
#7 0xffffffff802b8446 at ithread_loop+0x96
#8 0xffffffff802b4d38 at fork_exit+0x118
#9 0xffffffff804cdf3e at fork_trampoline+0xe


#0  doadump () at pcpu.h:224
224     pcpu.h: No such file or directory.
        in pcpu.h
(kgdb) #0  doadump () at pcpu.h:224
#1  0xffffffff802de36a in boot (howto=260)
    at /usr/src/sys/kern/kern_shutdown.c:419
#2  0xffffffff802de72b in panic (fmt=Variable "fmt" is not available.
)
    at /usr/src/sys/kern/kern_shutdown.c:592
#3  0xffffffff804e2380 in trap_fatal (frame=0x1c, eva=Variable "eva"
is not available.
)
    at /usr/src/sys/amd64/amd64/trap.c:783
#4  0xffffffff804e2965 in trap (frame=0xffffff80000339a0)
    at /usr/src/sys/amd64/amd64/trap.c:592
#5  0xffffffff804cda74 in calltrap ()
    at /usr/src/sys/amd64/amd64/exception.S:224
#6  0xffffffff80904c1b in siis_timeout (slot=0xffffff8000263bb0) at bus.h:241
#7  0xffffffff802f0de8 in softclock (arg=Variable "arg" is not available.
)
    at /usr/src/sys/kern/kern_timeout.c:430
#8  0xffffffff802b6ddb in intr_event_execute_handlers (p=Variable "p"
is not available.
)
    at /usr/src/sys/kern/kern_intr.c:1220
#9  0xffffffff802b8446 in ithread_loop (arg=0xffffff0001831680)
    at /usr/src/sys/kern/kern_intr.c:1233
#10 0xffffffff802b4d38 in fork_exit (
    callout=0xffffffff802b83b0 <ithread_loop>, arg=0xffffff0001831680,
    frame=0xffffff8000033c40) at /usr/src/sys/kern/kern_fork.c:845
#11 0xffffffff804cdf3e in fork_trampoline ()
    at /usr/src/sys/amd64/amd64/exception.S:565
#12 0x0000000000000000 in ?? ()
#13 0x0000000000000000 in ?? ()
#14 0x0000000000000001 in ?? ()


More information about the freebsd-drivers mailing list