bogus optimal IO sizes for ASMedia ASM105x

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



(forwarded from: https://bugzilla.kernel.org/show_bug.cgi?id=199759)

Hi.


I have some USB/SATA bridges from Inatek apparently based on different
chipset generations:

My older ones:
May 11 22:41:08 heisenberg kernel: usb 4-2.2: new SuperSpeed USB device number 10 using xhci_hcd
May 11 22:41:08 heisenberg kernel: usb 4-2.2: New USB device found, idVendor=174c, idProduct=55aa
May 11 22:41:08 heisenberg kernel: usb 4-2.2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
May 11 22:41:08 heisenberg kernel: usb 4-2.2: Product: ASMT1053
May 11 22:41:08 heisenberg kernel: usb 4-2.2: Manufacturer: asmedia
May 11 22:41:08 heisenberg kernel: usb 4-2.2: SerialNumber: 123456789012
May 11 22:41:08 heisenberg kernel: usb 4-2.2: Device is not authorized for usage
May 11 22:41:11 heisenberg kernel: usb-storage 4-2.2:1.0: USB Mass Storage device detected
May 11 22:41:11 heisenberg kernel: usb-storage 4-2.2:1.0: Quirks match for vid 174c pid 55aa: 400000
May 11 22:41:11 heisenberg kernel: scsi host6: usb-storage 4-2.2:1.0
May 11 22:41:11 heisenberg kernel: usb 4-2.2: authorized to connect
May 11 22:41:12 heisenberg kernel: scsi 6:0:0:0: Direct-Access     ASMT     2105             0    PQ: 0 ANSI: 6
May 11 22:41:12 heisenberg kernel: sd 6:0:0:0: Attached scsi generic sg1 type 0
May 11 22:41:12 heisenberg kernel: sd 6:0:0:0: [sdb] Spinning up disk...
May 11 22:41:26 heisenberg kernel: ..............ready
May 11 22:41:26 heisenberg kernel: sd 6:0:0:0: [sdb] 15628053168 512-byte logical blocks: (8.00 TB/7.28 TiB)
May 11 22:41:26 heisenberg kernel: sd 6:0:0:0: [sdb] 4096-byte physical blocks
May 11 22:41:26 heisenberg kernel: sd 6:0:0:0: [sdb] Write Protect is off
May 11 22:41:26 heisenberg kernel: sd 6:0:0:0: [sdb] Mode Sense: 43 00 00 00
May 11 22:41:26 heisenberg kernel: sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
May 11 22:41:27 heisenberg kernel:  sdb: sdb1 sdb2
May 11 22:41:27 heisenberg kernel: sd 6:0:0:0: [sdb] Attached SCSI disk

Which give:
# lsblk -t /dev/sdb
NAME        ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE  RA WSAME
sdb                 0   4096      0    4096     512    1 cfq       128 128    0B
├─sdb1              0   4096      0    4096     512    1 cfq       128 128    0B
│ └─data-a1         0   4096      0    4096     512    1           128 128    0B
└─sdb2              0   4096      0    4096     512    1 cfq       128 128    0B
# cat /sys/block/sdb/queue/optimal_io_size
0
for a connected SATA HDD.


And newer ones:
May 11 22:31:50 heisenberg kernel: usb 4-2.2: new SuperSpeed USB device number 8 using xhci_hcd
May 11 22:31:50 heisenberg kernel: usb 4-2.2: New USB device found, idVendor=174c, idProduct=55aa
May 11 22:31:50 heisenberg kernel: usb 4-2.2: New USB device strings: Mfr=2, Product=3, SerialNumber=1
May 11 22:31:50 heisenberg kernel: usb 4-2.2: Product: ASM105x
May 11 22:31:50 heisenberg kernel: usb 4-2.2: Manufacturer: ASMedia
May 11 22:31:50 heisenberg kernel: usb 4-2.2: SerialNumber:             Z84134CP
May 11 22:31:50 heisenberg kernel: usb 4-2.2: Device is not authorized for usage
May 11 22:31:52 heisenberg kernel: usb 4-2.2: authorized to connect
May 11 22:31:52 heisenberg kernel: scsi host6: uas
May 11 22:31:52 heisenberg kernel: usbcore: registered new interface driver uas
May 11 22:31:52 heisenberg kernel: scsi 6:0:0:0: Direct-Access     ASMedia  ASM105x          0    PQ: 0 ANSI: 6
May 11 22:31:52 heisenberg kernel: sd 6:0:0:0: Attached scsi generic sg1 type 0
May 11 22:31:52 heisenberg kernel: sd 6:0:0:0: [sdb] 15628053168 512-byte logical blocks: (8.00 TB/7.28 TiB)
May 11 22:31:52 heisenberg kernel: sd 6:0:0:0: [sdb] 4096-byte physical blocks
May 11 22:31:52 heisenberg kernel: sd 6:0:0:0: [sdb] Write Protect is off
May 11 22:31:52 heisenberg kernel: sd 6:0:0:0: [sdb] Mode Sense: 43 00 00 00
May 11 22:31:52 heisenberg kernel: sd 6:0:0:0: [sdb] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
May 11 22:31:52 heisenberg kernel:  sdb: sdb1 sdb2
May 11 22:31:52 heisenberg kernel: sd 6:0:0:0: [sdb] Attached SCSI disk
May 11 22:31:52 heisenberg kernel: BTRFS: device label data-a1-meta devid 1 transid 316 /dev/sdb2

Which give:
# lsblk -t /dev/sdb
NAME        ALIGNMENT MIN-IO   OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE  RA WSAME
sdb                 0   4096 33553920    4096     512    1 cfq       128 128   32M
├─sdb1              0   4096 33553920    4096     512    1 cfq       128 128   32M
│ └─data-a1        -1   4096        0    4096     512    1           128 128    0B
└─sdb2              0   4096 33553920    4096     512    1 cfq       128 128   32M
# cat /sys/block/sdb/queue/optimal_io_size
33553920

And additionally these warnings in the kernel log:
May 11 22:32:51 heisenberg kernel: NET: Registered protocol family 38
May 11 22:32:58 heisenberg kernel: device-mapper: table: 253:1: adding target device sdb1 caused an alignment inconsistency: physical_block_size=4096, logical_block_size=512, alignment_offset=0, start=2097152
May 11 22:32:58 heisenberg kernel: device-mapper: table: 253:1: adding target device sdb1 caused an alignment inconsistency: physical_block_size=4096, logical_block_size=512, alignment_offset=0, start=2097152
May 11 22:32:58 heisenberg kernel: device-mapper: table: 253:1: adding target device sdb1 caused an alignment inconsistency: physical_block_size=4096, logical_block_size=512, alignment_offset=0, start=2097152
May 11 22:32:58 heisenberg kernel: device-mapper: table: 253:1: adding target device sdb1 caused an alignment inconsistency: physical_block_size=4096, logical_block_size=512, alignment_offset=0, start=2097152
May 11 22:32:58 heisenberg kernel: BTRFS: device label data-a1 devid 1 transid 67002 /dev/dm-1
May 11 22:33:02 heisenberg kernel: BTRFS info (device dm-1): use zlib compression, level 3
May 11 22:33:02 heisenberg kernel: BTRFS info (device dm-1): disk space caching is enabled
May 11 22:33:02 heisenberg kernel: BTRFS info (device dm-1): has skinny extents


Apparently the optimal IO sizes reported by the ASMedia ASM105x is
bogus.

Not sure whether the kernel provides means to work around quirks at
this level, but in case it does it would be nice if some reasonable
value could be used to override the opt io of 33553920.


Thanks,
Chris.
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux