Hi,
My understanding: i.MX8QXP as usb host, iperf client, 5G module as usb device, iperf host (not sure), and some special network stack change to make iperf result go to 1.1Gbps, right?
As customer no MEK board, suggest connect board to Linux PC, try test under above condition (I suggest using NCM, if they using ECM, please share how to using ECM), and if reproduced, share detail steps. Or using two sets customer i.MX8QXP board connected ?
Current i had started try to reproduce by using i.MX8QXP MEK, did not reproduce it yet. Need customer side provide reproduce steps.
The callstack , there are some xhci function, but doesnot mean issue caused by xhci driver.
Below call stack show: on xhci irq context, one urb is finished transfer, that urb will return to device driver which is (drivers/net/usb/usbnet.c), callback is rx_complete, then will enter to network stack to allocate memory , then alloc failure occurs.
warn_alloc+0xe8/0x180
__alloc_pages_nodemask+0xae8/0xb38
page_frag_alloc+0x150/0x170
__netdev_alloc_skb+0xb0/0x138 //this code from network stack
rx_submit+0x44/0x260 //this two function from drivers/net/usb/usbnet.c
rx_complete+0x1fc/0x228
__usb_hcd_giveback_urb+0x60/0xf0
usb_hcd_giveback_urb+0xe8/0x120
xhci_giveback_urb_in_irq.isra.25+0x84/0xb0
xhci_td_cleanup+0xd0/0x118
finish_td.isra.46+0xe8/0x120
xhci_irq+0x4b0/0x1528
The issue log "page allocation failure: order:0, mode:0x1080020(GFP_ATOMIC),", please note it is GFP_ATOMIC, and only one page, so customer should add related debug log into function __alloc_pages_slowpath , to check out why it alloc failure.
Regards