Skip to contentSkip to conversation

i40e: TSO breaks when MSS spans more than 8 data fragments

Bug 1097 [email protected] 1 participant 1 message Oct 11, 2022

lore
Share & tools
lore
#0 lore raw

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.