Date: Tue, 27 Sep 2022 09:17:10 -0300 (-03) From: Ivan Quitschal <tezeka@hotmail.com> To: Hans Petter Selasky <hps@selasky.org> Cc: Alexander Motin <mav@FreeBSD.org>, Ivan Quitschal <tezeka@hotmail.com>, "freebsd-current@freebsd.org" <freebsd-current@freebsd.org>, "freebsd-usb@FreeBSD.org" <freebsd-usb@FreeBSD.org> Subject: Re: RES: TP-LINK USB no carrier after speed test Message-ID: <CP6P284MB19006894C8DA481BD73A3F1BCB559@CP6P284MB1900.BRAP284.PROD.OUTLOOK.COM> In-Reply-To: <4f8778a0-0c47-ff47-f954-ba4e8d9fc5e1@selasky.org> References: <CP6P284MB1900F16EDAEAF1CB485BC372CB499@CP6P284MB1900.BRAP284.PROD.OUTLOOK.COM> <11b7de01-d95e-5280-2a22-8b17e29c34c0@selasky.org> <CP5P284MB1902026EB918E88DE5581ACCCB489@CP5P284MB1902.BRAP284.PROD.OUTLOOK.COM> <5f646a9a-2885-05af-9ff1-ef4c4446f365@selasky.org> <CP5P284MB1902929145200C5BE706C789CB489@CP5P284MB1902.BRAP284.PROD.OUTLOOK.COM> <9c370afb-1931-f977-16a9-4915a82ec773@selasky.org> <CP5P284MB19020B7054012F9140E9D8F2CB489@CP5P284MB1902.BRAP284.PROD.OUTLOOK.COM> <CP6P284MB19005F8AF0CF964D011E8EA7CB4A9@CP6P284MB1900.BRAP284.PROD.OUTLOOK.COM> <fd261e3f-ed98-1c48-2af2-943520acbf13@selasky.org> <5bf98c30-c00f-7e7a-3a3d-c0bd5862fb97@selasky.org> <CP6P284MB1900A6E8ECDB4CFF78323904CB529@CP6P284MB1900.BRAP284.PROD.OUTLOOK.COM> <d863a8ec-edfd-73bc-c772-216830e0d7d5@FreeBSD.org> <1f11b131-7031-60db-4331-d95159c5b373@selasky.org> <bc90f83d-511d-d31f-d9f7-0aaf82ecba4a@FreeBSD.org> <4f8778a0-0c47-ff47-f954-ba4e8d9fc5e1@selasky.org>
index | next in thread | previous in thread | raw e-mail
[-- Attachment #1 --]
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
[-- Attachment #2 --]
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
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0039
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x00a0
bMaxPower = 0x0024
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0003
bInterfaceClass = 0x00ff <Vendor specific>
bInterfaceSubClass = 0x00ff
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081 <IN>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0400
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x30
bDescriptorSubType = 0x03
RAW dump:
0x00 | 0x06, 0x30, 0x03, 0x00, 0x00, 0x00
Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0002 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0400
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x30
bDescriptorSubType = 0x03
RAW dump:
0x00 | 0x06, 0x30, 0x03, 0x00, 0x00, 0x00
Endpoint 2
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0083 <IN>
bmAttributes = 0x0003 <INTERRUPT>
wMaxPacketSize = 0x0002
bInterval = 0x0008
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x30
bDescriptorSubType = 0x00
RAW dump:
0x00 | 0x06, 0x30, 0x00, 0x00, 0x02, 0x00
[-- Attachment #3 --]
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
}
[-- Attachment #4 --]
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
Configuration index 0
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0039
bNumInterfaces = 0x0001
bConfigurationValue = 0x0001
iConfiguration = 0x0000 <no string>
bmAttributes = 0x00a0
bMaxPower = 0x0024
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0003
bInterfaceClass = 0x00ff <Vendor specific>
bInterfaceSubClass = 0x00ff
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081 <IN>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0400
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x30
bDescriptorSubType = 0x03
RAW dump:
0x00 | 0x06, 0x30, 0x03, 0x00, 0x00, 0x00
Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0002 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0400
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x30
bDescriptorSubType = 0x03
RAW dump:
0x00 | 0x06, 0x30, 0x03, 0x00, 0x00, 0x00
Endpoint 2
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0083 <IN>
bmAttributes = 0x0003 <INTERRUPT>
wMaxPacketSize = 0x0002
bInterval = 0x0008
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x30
bDescriptorSubType = 0x00
RAW dump:
0x00 | 0x06, 0x30, 0x00, 0x00, 0x02, 0x00
Configuration index 1
bLength = 0x0009
bDescriptorType = 0x0002
wTotalLength = 0x0062
bNumInterfaces = 0x0002
bConfigurationValue = 0x0002
iConfiguration = 0x0000 <no string>
bmAttributes = 0x00a0
bMaxPower = 0x0024
Interface 0
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0000
bAlternateSetting = 0x0000
bNumEndpoints = 0x0001
bInterfaceClass = 0x0002 <Communication device>
bInterfaceSubClass = 0x0006
bInterfaceProtocol = 0x0000
iInterface = 0x0005 <CDC Communications Control>
Additional Descriptor
bLength = 0x05
bDescriptorType = 0x24
bDescriptorSubType = 0x00
RAW dump:
0x00 | 0x05, 0x24, 0x00, 0x10, 0x01
Additional Descriptor
bLength = 0x05
bDescriptorType = 0x24
bDescriptorSubType = 0x06
RAW dump:
0x00 | 0x05, 0x24, 0x06, 0x00, 0x01
Additional Descriptor
bLength = 0x0d
bDescriptorType = 0x24
bDescriptorSubType = 0x0f
RAW dump:
0x00 | 0x0d, 0x24, 0x0f, 0x03, 0x00, 0x00, 0x00, 0x00,
0x08 | 0xea, 0x05, 0x00, 0x00, 0x00
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0083 <IN>
bmAttributes = 0x0003 <INTERRUPT>
wMaxPacketSize = 0x0010
bInterval = 0x0008
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x30
bDescriptorSubType = 0x00
RAW dump:
0x00 | 0x06, 0x30, 0x00, 0x00, 0x08, 0x00
Interface 1
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0001
bAlternateSetting = 0x0000
bNumEndpoints = 0x0000
bInterfaceClass = 0x000a <CDC-data>
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0000 <no string>
Interface 1 Alt 1
bLength = 0x0009
bDescriptorType = 0x0004
bInterfaceNumber = 0x0001
bAlternateSetting = 0x0001
bNumEndpoints = 0x0002
bInterfaceClass = 0x000a <CDC-data>
bInterfaceSubClass = 0x0000
bInterfaceProtocol = 0x0000
iInterface = 0x0004 <Ethernet Data>
Endpoint 0
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0081 <IN>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0400
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x30
bDescriptorSubType = 0x03
RAW dump:
0x00 | 0x06, 0x30, 0x03, 0x00, 0x00, 0x00
Endpoint 1
bLength = 0x0007
bDescriptorType = 0x0005
bEndpointAddress = 0x0002 <OUT>
bmAttributes = 0x0002 <BULK>
wMaxPacketSize = 0x0400
bInterval = 0x0000
bRefresh = 0x0000
bSynchAddress = 0x0000
Additional Descriptor
bLength = 0x06
bDescriptorType = 0x30
bDescriptorSubType = 0x03
RAW dump:
0x00 | 0x06, 0x30, 0x03, 0x00, 0x00, 0x00
[-- Attachment #5 --]
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
}
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CP6P284MB19006894C8DA481BD73A3F1BCB559>
