On Tue, 27 Sep 2022, Hans Petter Selasky wrote:
On 9/27/22 02:24, Alexander Motin wrote:
On 26.09.2022 17:29, Hans Petter Selasky wrote:
I've got a supposedly "broken" if_ure dongle from Alexander, but
I'm unable to reproduce the if_ure hang on two different pieces
of XHCI hardware, Intel based and AMD based, which I've got.
This leads me to believe there is a bug in the XHCI driver or
hardware on your system.
Can you share the pciconfig -lv output for your XHCI controllers?
I have two laptops of different generations reproducing this
problem, but both are having Thunderbolt on the USB-C ports:
This is one (7th Gen Core i7):
xhci1@pci0:56:0:0: class=0x0c0330 rev=0x02 hdr=0x00
vendor=0x8086 device=0x15d4 subvendor=0x2222 subdevice=0x1111
vendor = 'Intel Corporation'
device = 'JHL6540 Thunderbolt 3 USB Controller (C step)
[Alpine Ridge 4C 2016]'
class = serial bus
subclass = USB
bar [10] = type Memory, range 32, base 0xc3f00000, size
65536, enabled
cap 01[80] = powerspec 3 supports D0 D1 D2 D3 current D0
cap 05[88] = MSI supports 8 messages, 64 bit enabled with 1
message
cap 10[c0] = PCI-Express 2 endpoint max data 128(128) RO NS
max read 512
link x4(x4) speed 2.5(2.5) ASPM disabled(L0s/L1)
ClockPM disabled
ecap 0003[100] = Serial 1 20ff910876f10c00
ecap 0001[200] = AER 1 0 fatal 0 non-fatal 1 corrected
ecap 0002[300] = VC 1 max VC0
ecap 0004[400] = Power Budgeting 1
ecap 000b[500] = Vendor [1] ID 1234 Rev 1 Length 216
ecap 0018[600] = LTR 1
ecap 0019[700] = PCIe Sec 1 lane errors 0
This is another (11th Gen Core i7);
xhci0@pci0:0:13:0: class=0x0c0330 rev=0x01 hdr=0x00
vendor=0x8086 device=0x9a13 subvendor=0x1028 subdevice=0x0991
vendor = 'Intel Corporation'
device = 'Tiger Lake-LP Thunderbolt 4 USB Controller'
class = serial bus
subclass = USB
bar [10] = type Memory, range 64, base 0x60552c0000, size
65536, enabled
cap 01[70] = powerspec 2 supports D0 D3 current D0
cap 05[80] = MSI supports 8 messages, 64 bit enabled with 1
message
cap 09[90] = vendor (length 20) Intel cap 15 version 0
cap 09[b0] = vendor (length 0) Intel cap 0 version 1
Does the system you also has Thunderbolt chip, or you use native
Intel chipet's XHCI?
Also, when running the stress test and you see the traffic stops,
what happens if you run this command as root on the ugen which
the if_ure belongs to:
usbconfig -d ugenX.Y dump_string 0
Does the traffic resume?
Nope. Out of 4 times when traffic stopped 2 times it reported
<read error> and 2 times it completed successfully, but it neither
case it recovered traffic. Only reset recovered it.
Hi Alexander,
Could you run "usbdump -d X.Y" at the same time to capture all the
errors?
Looking especially for USB_ERR_TIMEOUT .
I have this:
xhci0@pci0:3:0:3: class=0x0c0330 rev=0x00 hdr=0x00 vendor=0x1022
device=0x15e0 subvendor=0x1849 subdevice=0xffff
vendor = 'Advanced Micro Devices, Inc. [AMD]'
device = 'Raven USB 3.1'
class = serial bus
subclass = USB
xhci0@pci0:0:20:0: class=0x0c0330 rev=0x21 hdr=0x00
vendor=0x8086 device=0x9d2f subvendor=0x8086 subdevice=0x9d2f
vendor = 'Intel Corporation'
device = 'Sunrise Point-LP USB 3.0 xHCI Controller'
class = serial bus
subclass = USB
--HPS
hi Hans
i think i got some good logs for you
before the problem i ran this:
ugen0.10: <TP-Link USB 10/100/1000 LAN> at usbus0, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=ON (72mA)
# usbconfig -d ugen0.10 >> before
# usbconfig -d ugen0.10 dump_all_desc >> before
# usbconfig -d ugen0.10 dump_stats >> before_status
the after the problem happened i ran
# usbconfig -d ugen0.10 >> after
# usbconfig -d ugen0.10 dump_all_desc >> after
# usbconfig -d ugen0.10 dump_stats >> after_status
just by looking i already see some problems comparing both
for example
before the problem we have:
----------------------
ugen0.10: <TP-Link USB 10/100/1000 LAN> at usbus0, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=ON (72mA)
ugen0.10: <TP-Link USB 10/100/1000 LAN> at usbus0, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=ON (72mA)
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0300
bDeviceClass = 0x0000 <Probed by interface class>
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0009
idVendor = 0x2357
idProduct = 0x0601
bcdDevice = 0x3000
****
iManufacturer = 0x0001 <TP-Link>
iProduct = 0x0002 <USB 10/100/1000 LAN>
iSerialNumber = 0x0006 <000001>
bNumConfigurations = 0x0002
------------------------
after the problem
--------------------------
ugen0.10: <TP-Link USB 10/100/1000 LAN> at usbus0, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=ON (72mA)
ugen0.10: <TP-Link USB 10/100/1000 LAN> at usbus0, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=ON (72mA)
bLength = 0x0012
bDescriptorType = 0x0001
bcdUSB = 0x0300
bDeviceClass = 0x0000 <Probed by interface class>
bDeviceSubClass = 0x0000
bDeviceProtocol = 0x0000
bMaxPacketSize0 = 0x0009
idVendor = 0x2357
idProduct = 0x0601
bcdDevice = 0x3000
****
iManufacturer = 0x0001 <retrieving string failed>
iProduct = 0x0002 <retrieving string failed>
iSerialNumber = 0x0006 <retrieving string failed>
bNumConfigurations = 0x0002
Configuration index 0 --------------------------
the log in ttyv0 was this:
ure0: at uhub0, port 14, addr 9 (disconnected)
Sep 27 08:55:58 tzk-inspiron dhclient[1201]: receive_packet failed
on ue0: Device not configured
Sep 27 08:55:58 tzk-inspiron dhclient[1201]: ioctl(SIOCGIFFLAGS) on
ue0: Operation not permitted
Sep 27 08:55:58 tzk-inspiron dhclient[1201]: Interface ue0 no longer
appears valid.
Sep 27 08:55:58 tzk-inspiron dhclient[1201]: No live interfaces to
poll on - exiting.
Sep 27 08:55:58 tzk-inspiron dhclient[1201]: exiting.
Sep 27 08:55:58 tzk-inspiron dhclient[1201]: connection closed
Sep 27 08:55:58 tzk-inspiron dhclient[1201]: exiting.
rgephy0: detached
miibus0: detached
ure0: detached
difference between before_status and after_status
before_status:
ugen0.10: <TP-Link USB 10/100/1000 LAN> at usbus0, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=ON (72mA)
{
UE_CONTROL_OK : 2389
UE_ISOCHRONOUS_OK : 0
UE_BULK_OK : 803
UE_INTERRUPT_OK : 0
UE_CONTROL_FAIL : 0
UE_ISOCHRONOUS_FAIL : 0
UE_BULK_FAIL : 0
UE_INTERRUPT_FAIL : 0
}
after_status:
ugen0.10: <TP-Link USB 10/100/1000 LAN> at usbus0, cfg=0 md=HOST
spd=SUPER (5.0Gbps) pwr=ON (72mA)
{
UE_CONTROL_OK : 4275
UE_ISOCHRONOUS_OK : 0
UE_BULK_OK : 1126702
UE_INTERRUPT_OK : 0
UE_CONTROL_FAIL : 326
UE_ISOCHRONOUS_FAIL : 0
UE_BULK_FAIL : 42
UE_INTERRUPT_FAIL : 0
}
i hope that helps
all log files are attached
thanks
--tzk