Re: Lacie Rugged USB3-FW does not work with UAS

Julian Sikorski
2019-09-02T20:10:09Z

[-- Attachment #1: Type: text/plain, Size: 7846 bytes --]

W dniu 02.09.2019 o 13:42, Oliver Neukum pisze:
> Am Donnerstag, den 29.08.2019, 20:33 +0200 schrieb Julian Sikorski:
>
> Hi,
>
> this is a relief. If necessary we can blacklist the new device.
> Howevera, as that costs performance, I would appriciate if
> you take first try out an alternative approach.
>
>> [ 362.230833] usb 2-4: New USB device found, idVendor=059f,
>> idProduct=1061, bcdDevice= 0.01
>> [ 362.230837] usb 2-4: New USB device strings: Mfr=2, Product=3,
>> SerialNumber=1
>> [ 362.230839] usb 2-4: Product: Rugged USB3-FW
>> [ 362.230841] usb 2-4: Manufacturer: LaCie
>> [ 362.230842] usb 2-4: SerialNumber: 00000000157f928920fa
>> [ 362.270100] scsi host12: uas
>> [ 362.270720] scsi 12:0:0:0: Direct-Access LaCie Rugged FW USB3
>> 051E PQ: 0 ANSI: 6
>> [ 362.271472] sd 12:0:0:0: Attached scsi generic sg1 type 0
>> [ 362.280344] sd 12:0:0:0: [sdb] 1953525168 512-byte logical blocks:
>> (1.00 TB/932 GiB)
>> [ 362.280422] sd 12:0:0:0: [sdb] Write Protect is off
>> [ 362.280423] sd 12:0:0:0: [sdb] Mode Sense: 43 00 00 00
>> [ 362.280544] sd 12:0:0:0: [sdb] Write cache: enabled, read cache:
>> enabled, doesn't support DPO or FUA
>
> This means that at least the earliest commandos did get through.
>
>> [ 392.672691] sd 12:0:0:0: tag#29 uas_eh_abort_handler 0 uas-tag 1
>> inflight: IN
>> [ 392.672697] sd 12:0:0:0: tag#29 CDB: Report supported operation codes
>> a3 0c 01 12 00 00 00 00 02 00 00 00
>> [ 392.678304] scsi host12: uas_eh_device_reset_handler start
>> [ 392.800099] usb 2-4: reset SuperSpeed Gen 1 USB device number 3 using
>> xhci_hcd
>> [ 392.848154] scsi host12: uas_eh_device_reset_handler success
>> [ 422.875443] scsi host12: uas_eh_device_reset_handler start
>> [ 422.875650] sd 12:0:0:0: tag#16 uas_zap_pending 0 uas-tag 1 inflight:
>> [ 422.875654] sd 12:0:0:0: tag#16 CDB: Report supported operation codes
>> a3 0c 01 12 00 00 00 00 02 00 00 00
>> [ 422.997556] usb 2-4: reset SuperSpeed Gen 1 USB device number 3 using
>> xhci_hcd
>> [ 423.046525] scsi host12: uas_eh_device_reset_handler success
>> [ 431.853505] usb 2-4: USB disconnect, device number 3
>> [ 431.903459] sd 12:0:0:0: [sdb] Optimal transfer size 33553920 bytes
>> [ 432.064456] sd 12:0:0:0: [sdb] Read Capacity(16) failed: Result:
>> hostbyte=DID_ERROR driverbyte=DRIVER_OK
>
> Read Capacity(16) failed
>
>> [ 432.064459] sd 12:0:0:0: [sdb] Sense not available.
>> [ 432.184595] sd 12:0:0:0: [sdb] Read Capacity(10) failed: Result:
>> hostbyte=DID_ERROR driverbyte=DRIVER_OK
>
> Read Capacity(10) failed
>
> There is a chance that this device can deal only with Read Capacity(10)
> and crashes on Read Capacity(16). One difference between Usb-storage
> and UAS is the order in which the 10 and 16 versions are tried.
> The attached patches introduce a quirk to reverse the order
> for this particular device under UAS. Could you try them?
>
> Regards
> Oliver
>

Hi,

thanks for the patch! It appears that we got the drives confused, the
one needing quirks is 059f:1061. Unfortunately, even after hand-editing
the patch to match (attached for confirmation), uas is still not
working. The dmesg log is unchanged:

[ 67.925435] usb 2-4: new SuperSpeed Gen 1 USB device number 2 using
xhci_hcd
[ 67.947738] usb 2-4: New USB device found, idVendor=059f,
idProduct=1061, bcdDevice= 0.01
[ 67.947739] usb 2-4: New USB device strings: Mfr=2, Product=3,
SerialNumber=1
[ 67.947740] usb 2-4: Product: Rugged USB3-FW
[ 67.947741] usb 2-4: Manufacturer: LaCie
[ 67.947742] usb 2-4: SerialNumber: 00000000157f928920fa
[ 67.978140] usbcore: registered new interface driver usb-storage
[ 68.007356] scsi host12: uas
[ 68.007520] usbcore: registered new interface driver uas
[ 68.007781] scsi 12:0:0:0: Direct-Access LaCie Rugged FW USB3
051E PQ: 0 ANSI: 6
[ 68.008589] sd 12:0:0:0: Attached scsi generic sg1 type 0
[ 68.017457] sd 12:0:0:0: [sdb] 1953525168 512-byte logical blocks:
(1.00 TB/932 GiB)
[ 68.017540] sd 12:0:0:0: [sdb] Write Protect is off
[ 68.017542] sd 12:0:0:0: [sdb] Mode Sense: 43 00 00 00
[ 68.017693] sd 12:0:0:0: [sdb] Write cache: enabled, read cache:
enabled, doesn't support DPO or FUA
[ 98.221259] sd 12:0:0:0: tag#7 uas_eh_abort_handler 0 uas-tag 1
inflight: IN
[ 98.221264] sd 12:0:0:0: tag#7 CDB: Report supported operation codes
a3 0c 01 12 00 00 00 00 02 00 00 00
[ 98.226869] scsi host12: uas_eh_device_reset_handler start
[ 98.348671] usb 2-4: reset SuperSpeed Gen 1 USB device number 2 using
xhci_hcd
[ 98.397136] scsi host12: uas_eh_device_reset_handler success
[ 128.428023] scsi host12: uas_eh_device_reset_handler start
[ 128.428224] sd 12:0:0:0: tag#4 uas_zap_pending 0 uas-tag 1 inflight:
[ 128.428228] sd 12:0:0:0: tag#4 CDB: Report supported operation codes
a3 0c 01 12 00 00 00 00 02 00 00 00
[ 128.549805] usb 2-4: reset SuperSpeed Gen 1 USB device number 2 using
xhci_hcd
[ 128.597949] scsi host12: uas_eh_device_reset_handler success
[ 158.632176] scsi host12: uas_eh_device_reset_handler start
[ 158.632382] sd 12:0:0:0: tag#5 uas_zap_pending 0 uas-tag 1 inflight:
[ 158.632385] sd 12:0:0:0: tag#5 CDB: Report supported operation codes
a3 0c 01 12 00 00 00 00 02 00 00 00
[ 158.754653] usb 2-4: reset SuperSpeed Gen 1 USB device number 2 using
xhci_hcd
[ 158.803047] scsi host12: uas_eh_device_reset_handler success
[ 188.840196] scsi host12: uas_eh_device_reset_handler start
[ 188.840395] sd 12:0:0:0: tag#20 uas_zap_pending 0 uas-tag 1 inflight:
[ 188.840399] sd 12:0:0:0: tag#20 CDB: Report supported operation codes
a3 0c 01 12 00 00 00 00 02 00 00 00
[ 188.962059] usb 2-4: reset SuperSpeed Gen 1 USB device number 2 using
xhci_hcd
[ 189.010354] scsi host12: uas_eh_device_reset_handler success
[ 219.053201] sd 12:0:0:0: tag#21 uas_eh_abort_handler 0 uas-tag 1
inflight: IN
[ 219.053206] sd 12:0:0:0: tag#21 CDB: Report supported operation codes
a3 0c 01 93 00 00 00 00 02 00 00 00
[ 219.059167] scsi host12: uas_eh_device_reset_handler start
[ 219.179898] usb 2-4: reset SuperSpeed Gen 1 USB device number 2 using
xhci_hcd
[ 219.227613] scsi host12: uas_eh_device_reset_handler success
[ 225.587481] nf_conntrack: default automatic helper assignment has
been turned off for security reasons and CT-based firewall rule not
found. Use the iptables CT target to attach helpers instead.
[ 249.255814] scsi host12: uas_eh_device_reset_handler start
[ 249.256019] sd 12:0:0:0: tag#0 uas_zap_pending 0 uas-tag 1 inflight:
[ 249.256023] sd 12:0:0:0: tag#0 CDB: Report supported operation codes
a3 0c 01 93 00 00 00 00 02 00 00 00
[ 249.377558] usb 2-4: reset SuperSpeed Gen 1 USB device number 2 using
xhci_hcd
[ 249.425499] scsi host12: uas_eh_device_reset_handler success
[ 279.464424] scsi host12: uas_eh_device_reset_handler start
[ 279.464630] sd 12:0:0:0: tag#15 uas_zap_pending 0 uas-tag 1 inflight:
[ 279.464634] sd 12:0:0:0: tag#15 CDB: Report supported operation codes
a3 0c 01 93 00 00 00 00 02 00 00 00

---disconnect---

[ 280.017821] usb 2-4: USB disconnect, device number 2
[ 280.017869] scsi host12: uas_eh_device_reset_handler FAILED err -22
[ 280.017876] sd 12:0:0:0: Device offlined - not ready after error recovery
[ 280.043423] sd 12:0:0:0: [sdb] Optimal transfer size 33553920 bytes
[ 280.204419] sd 12:0:0:0: [sdb] Read Capacity(16) failed: Result:
hostbyte=DID_ERROR driverbyte=DRIVER_OK
[ 280.204422] sd 12:0:0:0: [sdb] Sense not available.
[ 280.324417] sd 12:0:0:0: [sdb] Read Capacity(10) failed: Result:
hostbyte=DID_ERROR driverbyte=DRIVER_OK
[ 280.324420] sd 12:0:0:0: [sdb] Sense not available.
[ 280.372418] sd 12:0:0:0: [sdb] 0 512-byte logical blocks: (0 B/0 B)
[ 280.524416] sd 12:0:0:0: [sdb] Attached SCSI disk

Would it make sense to enable some debugging options?

Best regards,
Julian

[-- Attachment #2: 0002-uas-quirk-for-LaCie-Rugged-USB-3.patch --]
[-- Type: text/x-patch, Size: 1008 bytes --]

From 115389ff678cae7cb636ac7e520f06e5182cd353 Mon Sep 17 00:00:00 2001
From: Oliver Neukum <oneukum@suse.com>
Date: Mon, 2 Sep 2019 13:30:00 +0200
Subject: [PATCH 2/2] uas: quirk for LaCie Rugged USB 3

No. CAPACITY16 for these devices.

Signed-off-by: Oliver Neukum <oneukum@suse.com>
---
drivers/usb/storage/unusual_devs.h | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
index ea0d27a94afe..643bba41291e 100644
--- a/drivers/usb/storage/unusual_devs.h
+++ b/drivers/usb/storage/unusual_devs.h
@@ -806,6 +806,12 @@ UNUSUAL_DEV( 0x059f, 0x0651, 0x0000, 0x0000,
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
US_FL_NO_WP_DETECT ),

+UNUSUAL_DEV( 0x059f, 0x1061, 0x0002, 0x0002,
+ "LaCie",
+ "Rugged FW USB3",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_READ_CAPACITY_16 ),
+
/*
* Submitted by Joel Bourquard <numlock@freesurf.ch>
* Some versions of this device need the SubClass and Protocol overrides
--
2.16.4