[Bug 258057] muge(4) crashes with large tx batches

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 27 Sep 2021 17:00:22 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=258057

--- Comment #20 from Dan Kotowski <dan.kotowski@a9development.com> ---
On a whim I attached it to another system I had and it came up at full speed!

https://gist.github.com/7b3f21bbd71236ebd4aaafb500e7790f

Notice that on the Honeycomb (aka hc and the system I'm focused on) we see
muge0 come up with `bcdUSB = 0x0210` but on a SuperMicro Xeon system we see
`bcdUSB = 0x0310`. And you can even see it come up here with spd=SUPER:



# devinfo -p muge0
muge0 uhub2 usbus0 xhci0 pci1 pcib1 acpi0 nexus0

# usbconfig -u 0 show_ifdrv
ugen0.1: <0x8086 XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps)
pwr=SAVE (0mA)
ugen0.1.0: uhub2: <0x8086 XHCI root HUB, class 9/0, rev 3.00/1.00, addr 1>
...
ugen0.5: <Microchip LAN7800> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps)
pwr=ON (224mA)
ugen0.5.0: muge0: <Microchip LAN7800, rev 2.10/3.00, addr 2>



What's odd is that the only difference between `dump_all_desc` on the Honeycomb
and the known-working SuperMicro server is the root hub Manufacturer ID:



1c1
< ugen0.1: <Generic XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps)
pwr=SAVE (0mA)
---
> ugen0.1: <0x8086 XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
13c13
<   iManufacturer = 0x0001  <Generic>
---
>   iManufacturer = 0x0001  <0x8086>



However the actual device comes up with some extra stuff on the SuperMicro (aka
sm):



$ diff hc/ugen0.2.dump_all_desc sm/ugen0.5.dump_all_desc
1c1
< ugen0.2: <Microchip LAN7800> at usbus0, cfg=0 md=HOST spd=HIGH (480Mbps)
pwr=ON (500mA)
---
> ugen0.5: <Microchip LAN7800> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=ON (224mA)
5c5
<   bcdUSB = 0x0210
---
>   bcdUSB = 0x0310
9c9
<   bMaxPacketSize0 = 0x0040
---
>   bMaxPacketSize0 = 0x0009
22c22
<     wTotalLength = 0x0027
---
>     wTotalLength = 0x0039
27c27
<     bMaxPower = 0x00fa
---
>     bMaxPower = 0x0070
45c45
<         wMaxPacketSize = 0x0200
---
>         wMaxPacketSize = 0x0400
49a50,58
>       Additional Descriptor
>
>       bLength = 0x06
>       bDescriptorType = 0x30
>       bDescriptorSubType = 0x07
>        RAW dump:
>        0x00 | 0x06, 0x30, 0x07, 0x00, 0x00, 0x00
>
>
55c64
<         wMaxPacketSize = 0x0200
---
>         wMaxPacketSize = 0x0400
59a69,77
>       Additional Descriptor
>
>       bLength = 0x06
>       bDescriptorType = 0x30
>       bDescriptorSubType = 0x06
>        RAW dump:
>        0x00 | 0x06, 0x30, 0x06, 0x00, 0x00, 0x00
>
>
66c84
<         bInterval = 0x0004
---
>         bInterval = 0x0006
68a87,94
>
>       Additional Descriptor
>
>       bLength = 0x06
>       bDescriptorType = 0x30
>       bDescriptorSubType = 0x00
>        RAW dump:
>        0x00 | 0x06, 0x30, 0x00, 0x00, 0x04, 0x00

-- 
You are receiving this mail because:
You are the assignee for the bug.