Вы здесь

Проблема с USB 3.0 внешним хардом.

Добрый вечер. После покупки появилась пробема...

Перекомпилил ядро с поддержкой усб 3.0, хард видится, монтируется, но скорость записи 32-35 мб\сек, почти как на усб 2.0 хардах. А должна быть около 50 мб\сек мин.

dmesg вывод:

[ 3.434090] usb 9-3: new high speed USB device using xhci_hcd and address 0
[ 3.489301] xhci_hcd 0000:04:00.0: WARN: short transfer on control ep
[ 3.491459] usb 9-3: default language 0x0409
[ 3.491800] xhci_hcd 0000:04:00.0: WARN: short transfer on control ep
[ 3.494300] xhci_hcd 0000:04:00.0: WARN: short transfer on control ep
[ 3.496801] xhci_hcd 0000:04:00.0: WARN: short transfer on control ep
[ 3.498870] usb 9-3: udev 2, busnum 9, minor = 1025
[ 3.498872] usb 9-3: New USB device found, idVendor=1058, idProduct=1123
[ 3.500906] usb 9-3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3.502954] usb 9-3: Product: My Book 3.0
[ 3.504994] usb 9-3: Manufacturer: Western Digital
[ 3.507031] usb 9-3: SerialNumber: 574341545230373735303831
[ 3.509171] usb 9-3: usb_probe_device
[ 3.509175] usb 9-3: configuration #1 chosen from 1 choice
[ 3.509438] usb 9-3: Successful Endpoint Configure command
[ 3.509811] usb 9-3: adding 9-3:1.0 (config #1, interface 0)
[ 3.509942] usb-storage 9-3:1.0: usb_probe_interface
[ 3.509946] usb-storage 9-3:1.0: usb_probe_interface - got id
[ 3.510015] scsi7 : usb-storage 9-3:1.0
[ 3.512178] drivers/usb/core/inode.c: creating file '002'
[ 3.512196] hub 1-0:1.0: state 7 ports 6 chg 0000 evt 0040
[ 3.512203] hub 5-0:1.0: state 7 ports 2 chg 0000 evt 0000
[ 4.512532] usb 9-3: ep 0x3 - urb len = 0x1f (31), addr = 0x36aaa000, num_trbs = 1
[ 4.512559] usb 9-3: ep 0x3 - asked for 31 bytes, 0 bytes untransferred
[ 4.512572] usb 9-3: ep 0x84 - urb len = 36, sglist used, num_trbs = 1

Последние 3 строчки повторяюся ( ОЧЕНЬ МНОГО раз )

После некоторого простоя:

[ 1712.859825] xhci_hcd 0000:04:00.0: WARN: short transfer on control ep
[ 1712.860823] xhci_hcd 0000:04:00.0: WARN: Stalled endpoint

Версия ядра 2.6.34-r1

.config:
http://pastebin.com/BTUdnseZ

lsusb -vvv вывод:

http://pastebin.com/ZYz8KUsN

lspci:

04:00.0 USB Controller: NEC Corporation Device 0194 (rev 03)

Первое что приходит в голову обнови ядро до 2.6.35 и заодно попробуй 2.6.36rc. Чтоб быть уверенным, что не ведро виновато.

"Должна быть 50мб/с" - этот винч, через этот кабель на этом контроллере юсб3 давал 50мб/с или из спецификаций юсб3 или винча?
ps с юсб3 дела не имел, но скорость работы одного картридера, с одной карты может отличаться до 10 раз в зависимости от кабеля.

_SerEga_ написал:
"Должна быть 50мб/с" - этот винч, через этот кабель на этом контроллере юсб3 давал 50мб/с или из спецификаций юсб3 или винча?
ps с юсб3 дела не имел, но скорость работы одного картридера, с одной карты может отличаться до 10 раз в зависимости от кабеля.

Что то вроде того. http://www.notebookreview.com/default.asp?newsID=5558&review=western+digital+my+book+3+wd В обзоре использовался тот же хард, тот же контроллер и усб шланг. Скорость записи 60+ мб\с...

Насчет 35 ядра гляну, но у меня оно как-то нестабильно пашет...

Вроде как решилось. .35 ядро дало 49-51 мб\с на запись

Единственная проблема что осталась - это спам в логах от тех 3х строчек... лог растет по 1-2 мб каждые несколько минут копирования...

И еще одно. На .34 ядре гномовская Disk Utility говорила Connection: USB at 480 mb/s, а с .35 ядром - at 705 mb/s. Насколько я знаю, пропускная способность усб 3.0 куда больше...

ЗЫ2. На бенчмарке этой диск утилиты на .34 ядре все показатели были от усб 2.0. Даже бенчмарк давал скорости чтения по 40 мб\с. С .35 - 100-120мб\с на чтение...

ЗЫ3. на .35 ядре lsusb -vvv теперь выводит:
bcdUSB 3.00 ( на .34 было bcdUSB 2.10 )

насчет логов может стоит отключить дебаггинг где-то (имеется в ввиду в конфигах ядра)? имхо дело в этом. логи же могу тормозить копирование, ибо IO операция всетаки...

для усб 3.0 я в ядре включал только 1 опцию: xHCI HCD ( USB 3.0 ) support. Без нее усб 3.0 вообще не видится. Так что имхо дело в чем-то другом...

А с чего вы взяли что вы не могли включить этот дебаг значительно раньше?
$ zcat /proc/config.gz | grep 'DEBUG'

zcat /proc/config.gz | grep 'DEBUG' ничего не выводит, нету config.gz. Но прошелся грепом по .config, выключил ненужное, пересобрал, все равно то же самое...

Все, исправил.

Свафлил, забыл выключить USB verbose debug messages и USB Announce new devices в Device drivers-USB support.

Спасибо за наводки!