Thread (8 messages) 8 messages, 4 authors, 2005-10-27

Re: Status of Marvell SATA driver (was Re: Trying latest sata_mv - and getting freeze)

From: Jens Axboe <hidden>
Date: 2005-10-27 14:29:17
Also in: lkml

On Thu, Oct 27 2005, Eugene Crosser wrote:
Jens Axboe wrote:
quoted
quoted
quoted
quoted
My hardware is SMP Supermicro with 6 disks on
Marvell MV88SX6081 8-port SATA II PCI-X Controller (rev 03)
and the sata_mv.c is version 0.25 dated 22 Oct 2005

The thing works with "old" mvsata340 driver, but the "new" kernel with
your driver freezes when it starts to probe disks.  Even Magic SysRq
does not work.  The last lines I see on screen are like this:

sata_mv version 0.25
ACPI: PCI Interrupt 0000:02:03.0[A] -> GSI 56 (level, low) -> IRQ 185
sata_mv(0000:02:03.0) 32 slots 8 ports unknown mode IRQ via MSI
ata1: SATA max UDMA/133 cmd 0x0 ctl 0xF8C22120 bmdma 0x0 irq 185
ata2: .... <same things>            0xF8C24120 ...
...
ata8: .... <same thing>             0xF8C38120 ...
ATA: abnormal status 0x80 on port 0xF8C2211C
... <five more lines identical to the above>
ata1: dev 0 ATA-7, max UDMA/133, 781422768 sectors: LBA48

- and at this point it freezes hard.
Any suggestions for me?  Any information I can collect to help
troubleshooting?
[...]
quoted
In the meantime, try turning off SMP and seeing if that makes a
difference.  There still might be a problem with the spinlocks and if so
it should go away in uniprocessor mode.
'nosmp' makes no difference.

Booting with nosmp isn't enough, you need to compile the kernel with
CONFIG_SMP turned off. Otherwise the spinlocks will still be used and
could cause a hard hang.
Yeah, that was it!  It boots with the kernel compiled for UP.
(did not yet have a chance to check how it works).
Any chance that somebody competent would fix the driver for SMP?
Try booting with nmi_watchdog=1 with the SMP kernel, that should trigger
a watchdog oops when it hard hangs on the spinlock. Then it should be
trivial to fix.

-- 
Jens Axboe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help