[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-ide
Subject:    SATA Tape drive problems.
From:       russell () lls ! lls ! com (Russell Brown)
Date:       2008-03-28 11:07:45
Message-ID: m1JfCQz-003uxPa () lls ! lls ! com
[Download RAW message or body]


I'm trying to use a Sony AIT SDX-870V tape drive on an NVidia MCP55
SATA controller and it's basically not working :-(  

I've tried two tape drives, different cables, different SATA ports and
various kernels upto 2.6.25-rc7.  All suffer from the same problem when
reading/writing data.  FWIW I do have a SATA CDRW drive on the same
system and can read from that all day long without problems.

The drive status is readable (and doing this doesn't cause failures):

# mt -f /dev/st0 status
SCSI 2 tape drive:
File number=0, block number=-1, partition=0.
Tape block size 1024 bytes. Density code 0xb3 (no translation).
Soft error count since last status=0
General status bits on (1010000):
 ONLINE IM_REP_EN
#

If I write (using tar cvf /dev/st0...) a small amount of data, then some
it gets written (I can read back half a dozen files). Anything
non-trivial however always results in:

ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2
ata3.00: BMDMA stat 0x4
ata3.00: cmd a0/01:00:00:00:28/00:00:00:00:00/a0 tag 0 dma 10240 out
         cdb 0a 01 00 00 0a 00 00 00  00 00 00 00 00 00 00 00
         res 10/00:03:00:00:00/00:00:00:00:00/a0 Emask 0x2 (HSM
violation)
ata3: soft resetting link
ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata3.00: configured for UDMA/100
ata3: EH complete
st0: Sense Key : Aborted Command [current] [descriptor]
Descriptor sense data with sense descriptors (in hex):
        72 0b 00 00 00 00 00 0e 09 0c 00 00 00 03 00 00 
        00 00 00 00 a0 10 
st0: Add. Sense: No additional sense information
st0: Sense Key : Unit Attention [current] 
Info fld=0x1
st0: Add. Sense: Power on, reset, or bus device reset occurred
st0: Error on write filemark.
st0: Sense Key : Not Ready [current] 
st0: Add. Sense: Logical unit not ready, cause not reportable


The drive detection bit from kern.log goes:

Mar 28 09:56:34 build kernel: ata1: SATA link down (SStatus 0 SControl 300)
Mar 28 09:56:34 build kernel: ata2: SATA link down (SStatus 0 SControl 300)
Mar 28 09:56:34 build kernel: ACPI: PCI Interrupt Link [LSA1] enabled at IRQ 22
Mar 28 09:56:34 build kernel: ACPI: PCI Interrupt 0000:00:05.1[B] -> Link [LSA1] -> \
                GSI 22 (level, low) -> IRQ 22
Mar 28 09:56:34 build kernel: PCI: Setting latency timer of device 0000:00:05.1 to 64
Mar 28 09:56:34 build kernel: scsi3 : sata_nv
Mar 28 09:56:34 build kernel: scsi4 : sata_nv
Mar 28 09:56:34 build kernel: ata3: SATA max UDMA/133 cmd 0xa880 ctl 0xa800 bmdma \
                0xa080 irq 22
Mar 28 09:56:34 build kernel: ata4: SATA max UDMA/133 cmd 0xa480 ctl 0xa400 bmdma \
                0xa088 irq 22
Mar 28 09:56:34 build kernel: ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
Mar 28 09:56:34 build kernel: ata3.00: ATAPI: SONY    SDX-870V, 0100, max UDMA/100
Mar 28 09:56:34 build kernel: ata3.00: applying bridge limits
Mar 28 09:56:34 build kernel: ata3.00: configured for UDMA/100
Mar 28 09:56:34 build kernel: ata4: SATA link down (SStatus 0 SControl 300)
Mar 28 09:56:34 build kernel: scsi 3:0:0:0: Sequential-Access SONY SDX-870V         \
                0100 PQ: 0 ANSI: 3
Mar 28 09:56:34 build kernel: st 3:0:0:0: Attached scsi tape st0
Mar 28 09:56:34 build kernel: st 3:0:0:0: st0: try direct i/o: yes (alignment 4 B)
Mar 28 09:56:34 build kernel: st 3:0:0:0: Attached scsi generic sg6 type 1
Mar 28 09:56:34 build kernel: ACPI: PCI Interrupt Link [LSA2] enabled at IRQ 21
Mar 28 09:56:34 build kernel: ACPI: PCI Interrupt 0000:00:05.2[C] -> Link [LSA2] -> \
                GSI 21 (level, low) -> IRQ 21
Mar 28 09:56:34 build kernel: PCI: Setting latency timer of device 0000:00:05.2 to 64
Mar 28 09:56:34 build kernel: scsi5 : sata_nv
Mar 28 09:56:34 build kernel: scsi6 : sata_nv
Mar 28 09:56:34 build kernel: ata5: SATA max UDMA/133 cmd 0xa000 ctl 0x9c00 bmdma \
                0x9480 irq 21
Mar 28 09:56:34 build kernel: ata6: SATA max UDMA/133 cmd 0x9880 ctl 0x9800 bmdma \
                0x9488 irq 21
Mar 28 09:56:34 build kernel: ata5: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
Mar 28 09:56:34 build kernel: ata5.00: ATAPI: ASUS    DRW-2014L1T, 1.00, max UDMA/66
Mar 28 09:56:34 build kernel: ata5.00: configured for UDMA/66
Mar 28 09:56:34 build kernel: ata6: SATA link down (SStatus 0 SControl 300)
Mar 28 09:56:34 build kernel: scsi 5:0:0:0: CD-ROM            ASUS DRW-2014L1T      \
                1.00 PQ: 0 ANSI: 5
Mar 28 09:56:34 build kernel: sr0: scsi3-mmc drive: 48x/48x writer dvd-ram cd/rw \
                xa/form2 cdda tray
Mar 28 09:56:34 build kernel: Uniform CD-ROM driver Revision: 3.20
Mar 28 09:56:34 build kernel: sr 5:0:0:0: Attached scsi CD-ROM sr0
Mar 28 09:56:34 build kernel: sr 5:0:0:0: Attached scsi generic sg7 type 5
Mar 28 09:56:34 build kernel: ACPI: PCI Interrupt Link [LUB2] enabled at IRQ 20

lspci -v (for the SATA stuff) shows:

00:05.0 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3) (prog-if 85 \
[Master SecO PriO])  Subsystem: Super Micro Computer Inc Unknown device a011
        Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 23
        I/O ports at b480 [size=8]
        I/O ports at b400 [size=4]
        I/O ports at b080 [size=8]
        I/O ports at b000 [size=4]
        I/O ports at ac00 [size=16]
        Memory at dfaf9000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [44] Power Management version 2
        Capabilities: [b0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/2 \
Enable-  Capabilities: [cc] HyperTransport: MSI Mapping

00:05.1 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3) (prog-if 85 \
[Master SecO PriO])  Subsystem: Super Micro Computer Inc Unknown device a011
        Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 22
        I/O ports at a880 [size=8]
        I/O ports at a800 [size=4]
        I/O ports at a480 [size=8]
        I/O ports at a400 [size=4]
        I/O ports at a080 [size=16]
        Memory at dfaf8000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [44] Power Management version 2
        Capabilities: [b0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/2 \
Enable-  Capabilities: [cc] HyperTransport: MSI Mapping

00:05.2 IDE interface: nVidia Corporation MCP55 SATA Controller (rev a3) (prog-if 85 \
[Master SecO PriO])  Subsystem: Super Micro Computer Inc Unknown device a011
        Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 21
        I/O ports at a000 [size=8]
        I/O ports at 9c00 [size=4]
        I/O ports at 9880 [size=8]
        I/O ports at 9800 [size=4]
        I/O ports at 9480 [size=16]
        Memory at dfaf7000 (32-bit, non-prefetchable) [size=4K]
        Capabilities: [44] Power Management version 2
        Capabilities: [b0] Message Signalled Interrupts: Mask- 64bit+ Queue=0/2 \
Enable-  Capabilities: [cc] HyperTransport: MSI Mapping


Using the 'sonytools' utility, I can do things like eject the tape (mt
does that too) but trying a 'longer' command like tape format results in:

#  sonytape /dev/st0 -p
SONY tape device detected.
SONY SDX-870V   Revision: 0100
Please Load Tape In Drive!
Sleeping 60 seconds.
Formatting Tape.
Request Sense data: 0x72 0x0b 0x47 0x00 0x00 0x00 0x00 0x0e 0x09 0x0c 
 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02 0x00 0x00 
 0xa0 0x58 
Unknown Sense Code, No additional sense information
Done.
#

and dmesg for this failure says:

ata3.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x2 frozen
ata3.00: cmd a0/00:00:00:16:00/00:00:00:00:00/a0 tag 0 pio 24 out
         cdb 15 10 00 00 16 00 00 00  00 00 00 00 00 00 00 00
         res 58/00:00:00:02:00/00:00:00:00:00/a0 Emask 0x6 (timeout)
ata3.00: status: { DRDY DRQ }
ata3: port is slow to respond, please be patient (Status 0xd0)
ata3: device not ready (errno=-16), forcing hardreset
ata3: hard resetting link
ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
ata3.00: configured for UDMA/100
ata3: EH complete
st0: Sense Key : Unit Attention [current] 
st0: Add. Sense: Power on, reset, or bus device reset occurred

As I said earlier, small amounts of data work like so:

# tar cvf /dev/st0 .
./
./sonytape
./nori_trace.txt
./SDX-870V.pdf
./sonytape_linux_v2.8.tar.gz
./sdx870v_0100.v87
./datap.bin
./readme_sonytape_linux_v2.8.txt
./chnginq.txt
# tar vtf /dev/st0
drwxrwxr-x root/root         0 2008-03-27 15:07 ./
-rwxr-xr-x root/root    135282 2008-03-19 18:29 ./sonytape
-rw-rw-r-- root/root   1360365 2008-03-27 15:07 ./nori_trace.txt
-rw------- root/root    481793 2008-03-27 14:48 ./SDX-870V.pdf
-rw-rw-r-- root/root     57566 2008-03-27 14:48
./sonytape_linux_v2.8.tar.gz
-rw------- root/root   1514496 2008-03-27 14:48 ./sdx870v_0100.v87
-r-xr-xr-x root/root     65536 2003-07-20 16:43 ./datap.bin
-rw-r--r-- root/root     12674 2008-03-19 15:28
./readme_sonytape_linux_v2.8.txt
-r-xr-xr-x root/root        28 2008-03-19 18:15 ./chnginq.txt
#

So it's seemingly something to do with the amount of data being sent to
the drive.

Can anyone suggest a course of action to getting this fixed?  I'm very
happy to stick debug in bits of the kernel and report results.

Thanks in advance.

-- 
 Regards,
     Russell
 --------------------------------------------------------------------
> Russell Brown          | MAIL: russell@lls.com PHONE: 01780 471800 |
> Lady Lodge Systems     | WWW Work: http://www.lls.com              |
> Peterborough, England  | WWW Play: http://www.ruffle.me.uk         |
 --------------------------------------------------------------------
--
To unsubscribe from this list: send the line "unsubscribe linux-ide" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic