LINUX.ORG.RU

Not enough host resources

 ,


1

2

К компьютеру через USB подключено устройство, которое состоит из 64 модемов. До недавнего времени все они успешно работали и отображались в системе как /dev/ttyACMX, где X — число от 0 до 63.

Но внезапно произошло что-то (ума не приложу), и рабочими остались только 12 модемов, а все остальные выдавали ошибку ввода-вывода. То есть проблема появилась без перезагрузки. При последующих перезагрузках, перевтыканиях кабеля модемы и вовсе перестали отображаться в системе. То есть, в системе отображаются ttyACM от 0 до 11, а остальных нет.

В dmesg вижу, что определяется 12 модемов, а потом возникает ошибка xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 53 (полный лог в конце поста). Что это значит, как это могло произойти? Напоминаю, что я ничего не менял, никаких конфигов или драйверов. (Да-да, «оно само».) Сначала я думал на аппаратную поломку, но в венде всё работает.

Примечательно, что похожая проблема у меня уже была на ubuntu-server. Тоже всё нормально работало, а потом вдруг перестало. Тогда я не стал смотреть лог, а просто установил debian. И теперь с ним такая же история…

Вот полный лог:

[ 5284.674757] usb 2-1: new high-speed USB device number 2 using xhci_hcd
[ 5284.822989] usb 2-1: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.00
[ 5284.822997] usb 2-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 5284.823000] usb 2-1: Product: USB 2.0 Hub [MTT]
[ 5284.824025] hub 2-1:1.0: USB hub found
[ 5284.824092] hub 2-1:1.0: 4 ports detected
[ 5285.230735] usb 2-1.1: new high-speed USB device number 3 using xhci_hcd
[ 5285.450982] usb 2-1.1: New USB device found, idVendor=1a40, idProduct=0201, bcdDevice= 1.00
[ 5285.450989] usb 2-1.1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 5285.450992] usb 2-1.1: Product: USB 2.0 Hub [MTT]
[ 5285.451671] hub 2-1.1:1.0: USB hub found
[ 5285.451733] hub 2-1.1:1.0: 7 ports detected
[ 5285.650969] usb 2-1.2: new high-speed USB device number 4 using xhci_hcd
[ 5285.871003] usb 2-1.2: New USB device found, idVendor=1a40, idProduct=0201, bcdDevice= 1.00
[ 5285.871010] usb 2-1.2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 5285.871013] usb 2-1.2: Product: USB 2.0 Hub [MTT]
[ 5285.871556] hub 2-1.2:1.0: USB hub found
[ 5285.871587] hub 2-1.2:1.0: 7 ports detected
[ 5285.970718] usb 2-1.1.1: new full-speed USB device number 5 using xhci_hcd
[ 5286.091880] usb 2-1.1.1: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5286.091887] usb 2-1.1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5286.182908] cdc_acm 2-1.1.1:1.0: ttyACM0: USB ACM device
[ 5286.183149] cdc_acm 2-1.1.1:1.2: ttyACM1: USB ACM device
[ 5286.183333] cdc_acm 2-1.1.1:1.4: ttyACM2: USB ACM device
[ 5286.183526] cdc_acm 2-1.1.1:1.6: ttyACM3: USB ACM device
[ 5286.183688] usbcore: registered new interface driver cdc_acm
[ 5286.183689] cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters
[ 5286.290725] usb 2-1.3: new high-speed USB device number 6 using xhci_hcd
[ 5286.510982] usb 2-1.3: New USB device found, idVendor=1a40, idProduct=0201, bcdDevice= 1.00
[ 5286.510990] usb 2-1.3: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 5286.510993] usb 2-1.3: Product: USB 2.0 Hub [MTT]
[ 5286.511690] hub 2-1.3:1.0: USB hub found
[ 5286.511762] hub 2-1.3:1.0: 7 ports detected
[ 5286.517105] usb 2-1: USB disconnect, device number 2
[ 5286.530983] usb 2-1.2-port1: attempt power cycle
[ 5286.531068] usb 2-1.1-port2: attempt power cycle
[ 5286.531268] usb 2-1-port4: attempt power cycle
[ 5286.847064] usb 2-1.1: USB disconnect, device number 3
[ 5286.847232] usb 2-1.1.1: USB disconnect, device number 5
[ 5286.851695] usb 2-1.2: USB disconnect, device number 4
[ 5286.853325] usb 2-1.3: USB disconnect, device number 6
[ 5287.122701] usb 2-1: new high-speed USB device number 19 using xhci_hcd
[ 5287.270941] usb 2-1: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.00
[ 5287.270948] usb 2-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 5287.270951] usb 2-1: Product: USB 2.0 Hub [MTT]
[ 5287.271618] hub 2-1:1.0: USB hub found
[ 5287.271675] hub 2-1:1.0: 4 ports detected
[ 5287.678689] usb 2-1.1: new high-speed USB device number 20 using xhci_hcd
[ 5287.898940] usb 2-1.1: New USB device found, idVendor=1a40, idProduct=0201, bcdDevice= 1.00
[ 5287.898947] usb 2-1.1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 5287.898950] usb 2-1.1: Product: USB 2.0 Hub [MTT]
[ 5287.899609] hub 2-1.1:1.0: USB hub found
[ 5287.899667] hub 2-1.1:1.0: 7 ports detected
[ 5288.098671] usb 2-1.2: new high-speed USB device number 21 using xhci_hcd
[ 5288.318968] usb 2-1.2: New USB device found, idVendor=1a40, idProduct=0201, bcdDevice= 1.00
[ 5288.318975] usb 2-1.2: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 5288.318978] usb 2-1.2: Product: USB 2.0 Hub [MTT]
[ 5288.319633] hub 2-1.2:1.0: USB hub found
[ 5288.319696] hub 2-1.2:1.0: 7 ports detected
[ 5288.402664] usb 2-1.1.1: new full-speed USB device number 22 using xhci_hcd
[ 5288.523934] usb 2-1.1.1: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5288.523941] usb 2-1.1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5288.550524] cdc_acm 2-1.1.1:1.0: ttyACM0: USB ACM device
[ 5288.551553] cdc_acm 2-1.1.1:1.2: ttyACM1: USB ACM device
[ 5288.552146] cdc_acm 2-1.1.1:1.4: ttyACM2: USB ACM device
[ 5288.552643] cdc_acm 2-1.1.1:1.6: ttyACM3: USB ACM device
[ 5288.706645] usb 2-1.3: new high-speed USB device number 23 using xhci_hcd
[ 5288.926871] usb 2-1.3: New USB device found, idVendor=1a40, idProduct=0201, bcdDevice= 1.00
[ 5288.926879] usb 2-1.3: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 5288.926882] usb 2-1.3: Product: USB 2.0 Hub [MTT]
[ 5288.927589] hub 2-1.3:1.0: USB hub found
[ 5288.927664] hub 2-1.3:1.0: 7 ports detected
[ 5289.030699] usb 2-1.2.1: new full-speed USB device number 24 using xhci_hcd
[ 5289.151831] usb 2-1.2.1: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5289.151838] usb 2-1.2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5289.178627] cdc_acm 2-1.2.1:1.0: ttyACM4: USB ACM device
[ 5289.179293] cdc_acm 2-1.2.1:1.2: ttyACM5: USB ACM device
[ 5289.179806] cdc_acm 2-1.2.1:1.4: ttyACM6: USB ACM device
[ 5289.180265] cdc_acm 2-1.2.1:1.6: ttyACM7: USB ACM device
[ 5289.250655] usb 2-1.1.2: new full-speed USB device number 25 using xhci_hcd
[ 5289.371840] usb 2-1.1.2: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5289.371847] usb 2-1.1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5289.398630] cdc_acm 2-1.1.2:1.0: ttyACM8: USB ACM device
[ 5289.399315] cdc_acm 2-1.1.2:1.2: ttyACM9: USB ACM device
[ 5289.399832] cdc_acm 2-1.1.2:1.4: ttyACM10: USB ACM device
[ 5289.400302] cdc_acm 2-1.1.2:1.6: ttyACM11: USB ACM device
[ 5289.570649] usb 2-1.4: new high-speed USB device number 26 using xhci_hcd
[ 5289.790883] usb 2-1.4: New USB device found, idVendor=1a40, idProduct=0201, bcdDevice= 1.00
[ 5289.790891] usb 2-1.4: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[ 5289.790894] usb 2-1.4: Product: USB 2.0 Hub [MTT]
[ 5289.791619] hub 2-1.4:1.0: USB hub found
[ 5289.791664] hub 2-1.4:1.0: 7 ports detected
[ 5289.890641] usb 2-1.3.1: new full-speed USB device number 27 using xhci_hcd
[ 5290.012002] usb 2-1.3.1: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5290.012009] usb 2-1.3.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5290.012398] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 53
[ 5290.012435] usb 2-1.3.1: can't set config #1, error -12
[ 5290.110580] usb 2-1.2.2: new full-speed USB device number 28 using xhci_hcd
[ 5290.231898] usb 2-1.2.2: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5290.231906] usb 2-1.2.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5290.232243] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 54
[ 5290.232277] usb 2-1.2.2: can't set config #1, error -12
[ 5290.330629] usb 2-1.1.3: new full-speed USB device number 29 using xhci_hcd
[ 5290.451773] usb 2-1.1.3: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5290.451780] usb 2-1.1.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5290.452109] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 55
[ 5290.452145] usb 2-1.1.3: can't set config #1, error -12
[ 5290.534627] usb 2-1.4.1: new full-speed USB device number 30 using xhci_hcd
[ 5290.655890] usb 2-1.4.1: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5290.655897] usb 2-1.4.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5290.656235] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 56
[ 5290.656268] usb 2-1.4.1: can't set config #1, error -12
[ 5290.754612] usb 2-1.3.2: new full-speed USB device number 31 using xhci_hcd
[ 5290.876420] usb 2-1.3.2: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5290.876427] usb 2-1.3.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5290.876750] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 57
[ 5290.876786] usb 2-1.3.2: can't set config #1, error -12
[ 5290.974617] usb 2-1.2.3: new full-speed USB device number 32 using xhci_hcd
[ 5291.096189] usb 2-1.2.3: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5291.096196] usb 2-1.2.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5291.096525] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 58
[ 5291.096560] usb 2-1.2.3: can't set config #1, error -12
[ 5291.194601] usb 2-1.1.4: new full-speed USB device number 33 using xhci_hcd
[ 5291.316249] usb 2-1.1.4: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5291.316256] usb 2-1.1.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5291.316601] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 59
[ 5291.316637] usb 2-1.1.4: can't set config #1, error -12
[ 5291.414605] usb 2-1.4.2: new full-speed USB device number 34 using xhci_hcd
[ 5291.536231] usb 2-1.4.2: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5291.536239] usb 2-1.4.2: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5291.536507] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 59
[ 5291.536532] usb 2-1.4.2: can't set config #1, error -12
[ 5291.618600] usb 2-1.3.3: new full-speed USB device number 35 using xhci_hcd
[ 5291.740151] usb 2-1.3.3: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5291.740159] usb 2-1.3.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5291.740448] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 60
[ 5291.740473] usb 2-1.3.3: can't set config #1, error -12
[ 5291.838634] usb 2-1.2.4: new full-speed USB device number 36 using xhci_hcd
[ 5291.960220] usb 2-1.2.4: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5291.960228] usb 2-1.2.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5291.960517] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 61
[ 5291.960546] usb 2-1.2.4: can't set config #1, error -12
[ 5292.058591] usb 2-1.4.3: new full-speed USB device number 37 using xhci_hcd
[ 5292.180252] usb 2-1.4.3: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5292.180260] usb 2-1.4.3: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5292.180526] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 61
[ 5292.180552] usb 2-1.4.3: can't set config #1, error -12
[ 5292.278588] usb 2-1.3.4: new full-speed USB device number 38 using xhci_hcd
[ 5292.400156] usb 2-1.3.4: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5292.400164] usb 2-1.3.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5292.400461] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 62
[ 5292.400488] usb 2-1.3.4: can't set config #1, error -12
[ 5292.498581] usb 2-1.4.4: new full-speed USB device number 39 using xhci_hcd
[ 5292.620223] usb 2-1.4.4: New USB device found, idVendor=04e2, idProduct=1414, bcdDevice= 0.03
[ 5292.620233] usb 2-1.4.4: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[ 5292.620562] xhci_hcd 0000:00:14.0: Not enough host resources, active endpoint contexts = 62

Обычно xhci в принципе не может в 64 устройства (с учётом хабов). По крайней мере я сужу по собственному опыту.

USB хаб тоже является устройством на шине, к слову.

Если материнка позволяет — можно попробовать отключить поддержку xhci.

Slavik763 ()
Последнее исправление: Slavik763 (всего исправлений: 2)

Судя по коду ядра модуль xhci_hcd загружен с ненулевым параметром quirks. Посмотри cat /sys/module/xhci_hcd/parameters/quirks. Если он не нулевой, попробуй поменять echo 0 > /sys/module/xhci_hcd/parameters/quirks. А затем переподключить устройство.

iliyap ★★★★★ ()
Ответ на: комментарий от fingolfin

Судя по этому коммиту оно сломано от рождения на xhci контроллерах интел:

https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/drivers/usb/host/xhci-pci.c?h=v5.14.13&id=2cf95c18d5069e13c02a8667d91e064df8e17e09

Твоё устройство это 4-портовый хаб (2-1), в который подключены четыре 7-портовых хаба (2-1.1, 2-1.2, 2-1.3, 2-1.4), в которые подключены по четыре четырёхинтерфейсных модема (2-1.{1,2,3,4}.{1,2,3,4}). Общее количество устройств на шине 1+4+16=21. Количество активных эндпоинтов на контроллере можно посчитать так:

find /sys/bus/usb/devices/usb2/ -name 'ep_*' |wc -l

Перечисление этих устройств и конфигурирование их эндпоинтов занимает какое-то время. Во время перечисления хаб 2-1 отвалился:

[ 5286.517105] usb 2-1: USB disconnect, device number 2

Возможно, это привело к тому, что счётчик активных эндпоинтов на xhci-контроллере не был корректно уменьшен. А при реконнекте хаба 2-1 со всей остальной гирляндой при повторном перечислении и конфигурировании эндпоинтов уже не хватило.

Может быть раньше хаб 2-1 не отваливался в процессе перечисления?

iliyap ★★★★★ ()
Ответ на: комментарий от iliyap

У меня в BIOS есть настройка таймаута ожидания ответа хаба. По умолчанию 20 секунд. Как раз для случаев долгого конфигурирования множества устройств. Может там собака порылась? Уверен что и из ОС это как то и где то регулируется.

Jameson ★★★★ ()

может попробовать загружать систему с другой версией ядра? (более старой или, наоборот, более новой относительно текущей). Вряд ли имеет смысл ковыряться с xhci-hcd.quirks , если такого опыта ранее не было

anonymous ()

Спасибо всем за ответы! После долгих ковыряний разобрался. Судя по всему, без моего ведома кабель с хабами переткнули в другой USB порт. И хотя на вид они (порты) все были одинаковые, внутрянка оказалась разная.

fingolfin ()