Re: main [so: 15] context, 7950X3D and RTL8251/8153 based Ethernet dongle: loss of state, example log information

From: Alexander Motin <mav_at_FreeBSD.org>
Date: Mon, 04 Mar 2024 20:13:13 UTC
On 04.03.2024 15:00, Poul-Henning Kamp wrote:
>>> Nov 30 03:23:18 7950X3D-UFS kernel: ue0: link state changed to DOWN
>>> Nov 30 03:23:18 7950X3D-UFS kernel: ue0: link state changed to UP
>>> Nov 30 03:23:18 7950X3D-UFS kernel: ue0: link state changed to DOWN
>>> Nov 30 03:23:18 7950X3D-UFS kernel: ue0: link state changed to UP
>>> Nov 30 03:23:18 7950X3D-UFS kernel: ue0: link state changed to DOWN
>>> Nov 30 03:23:18 7950X3D-UFS kernel: ue0: link state changed to UP
> 
> I consistently had similar problems with my 0x17ef/0x3066 "ThinkPad
> Thunderbolt 3 Dock MCU", but they went away after I forced it to
> use the if_cdce driver instead with this quirk:
> 
>          /* This works much better with if_cdce than if_ure */
>          USB_QUIRK(LENOVO, TBT3LAN,  0x0000, 0xffff, UQ_CFG_INDEX_1),

AFAIK it is only a workaround.  I saw it myself on number of different 
USB dongles and laptops, that USB starting experience some problems with 
multiple NIC queues and some other factors.  IIRC the Realtek driver was 
much more stable once I limited it to one queue and some other hacks. 
IIRC if_cdce just has only one queue and other limitations, that not 
only makes it more stable, but also much slower.  It would be good to 
understand what's wrong is there exactly, since IMHO it is a big problem 
now.  Unfortunately HPS was unable to reproduce it on his laptop (that 
makes me wonder if is is specific to chipset(s) or thunderbolt?), so it 
ended nowhere so far.

-- 
Alexander Motin