i40e: TSO breaks when MSS spans more than 8 data fragments
https://bugs.dpdk.org/show_bug.cgi?id=1097
Bug ID: 1097
Summary: i40e: TSO breaks when MSS spans more than 8 data
fragments
Product: DPDK
Version: unspecified
Hardware: All
OS: All
Status: UNCONFIRMED
Severity: normal
Priority: Normal
Component: ethdev
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
We've been running opensource ethdev tests [1] lately and we've come across a bug in TSO:
https://ts-factory.io/bublik/v2/log/100333?focusId=102700&mode=treeAndinfoAndlog
.
In the above example, a TSO transaction with MSS=4000 is requested for a packet bearing 6000 bytes of payload, with the first 4000 bytes spanning data located in 13 mbuf segments. As a result, no packets are seen on the opposite end of the wire, and the following log is produced:
i40e_dev_alarm_handler(): ICR0: malicious programming detected i40e_handle_mdd_event(): Malicious Driver Detection event 0x02 on TX queue 1 PF number 0x00 VF number 0x00 device 0000:01:00.0
i40e_handle_mdd_event(): TX driver issue detected on PF
According to
https://github.com/torvalds/linux/blob/master/drivers/net/ethernet/intel/i40e/i40e_txrx.c#L3416
, the "HW can't DMA more than 8 buffers to build a packet on the wire". By the looks of it, Tx prepare method in the PMD turns a blind eye to crossing this boundary. Hence the error.
Apparrently, Tx prepare in i40e shall either turn such transactions down or linearise the superframe data to some extent.
[1] http://mails.dpdk.org/archives/dev/2022-October/251663.html
Signature · 2 lines
You are receiving this mail because: You are the assignee for the bug.