Bug 1102 - i40e: enabling Rx/Tx queue deferred start has no effect
Summary: i40e: enabling Rx/Tx queue deferred start has no effect
Status: UNCONFIRMED
Alias: None
Product: DPDK
Classification: Unclassified
Component: ethdev (show other bugs)
Version: unspecified
Hardware: All All
: Normal normal
Target Milestone: ---
Assignee: Zhang Yuying
URL:
Depends on:
Blocks:
 
Reported: 2022-10-12 08:38 CEST by ivan.malov
Modified: 2023-11-09 03:32 CET (History)
5 users (show)



Attachments
probable fix (814 bytes, patch)
2022-10-12 08:38 CEST, ivan.malov
Details | Diff
probable fix v2 (2.29 KB, patch)
2022-10-19 09:30 CEST, ivan.malov
Details | Diff

Description ivan.malov 2022-10-12 08:38:00 CEST
Created attachment 223 [details]
probable fix

As part of the ongoing efforts [1] to bring up sophisticated DPDK PMD testing, it was found that i40e had a bug in deferred queue start feature.

Test logs [2] and [3] suggest that the problem manifests itself both in Rx and Tx cases. The target queue marked for deferred start proves active at the point where the test has not yet asked to enable it.

Our takeaway from studying i40e code is that the driver does not check whether a  queue has been marked for deferred start when enabling all queues on port start. Please find the probable fix attached.

[1] http://mails.dpdk.org/archives/dev/2022-October/251663.html
[2] https://ts-factory.io/bublik/v2/log/100333?focusId=101010&mode=treeAndlog
[3] https://ts-factory.io/bublik/v2/log/100333?focusId=101022&mode=treeAndlog
Comment 1 ivan.malov 2022-10-19 09:30:25 CEST
Created attachment 224 [details]
probable fix v2

Please find the new proposed fix attached.

UPDATE for Tx:

As noted before, without the fix, inactive queues send packets passed to them; the packets really hit the wire. With the fix being applied, the packets still can be passed to the PMD by the user, but they just get stuck; when the user starts the queues, the packets get unstuck and hit the wire. Such behaviour also might be incorrect, but it's unclear how to fix it.
Comment 2 dengkaiwen 2023-11-09 03:32:57 CET
please offer the reproduce steps with standard DPDK API like testpmd, l3fwd and other examples.

Note You need to log in before you can comment on or make changes to this bug.