Bug 1098

Summary: net/iavf: check_rx_vec_allow() result is ignored
Product: DPDK Reporter: Maxime Coquelin (maxime.coquelin)
Component: ethdevAssignee: beilei.xing
Status: CONFIRMED ---    
Severity: normal CC: bruce.richardson, david.marchand, kaiwenx.deng, kevinx.liu
Priority: Normal    
Version: 22.11   
Target Milestone: ---   
Hardware: All   
OS: All   

Description Maxime Coquelin 2022-10-11 15:25:45 CEST
In IAVF driver, check_rx_vec_allow() ensure some conditions are met to authorize vector path usage for a given Rxq.

Its return is assigned to Rxq's (struct iavf_adapter *)->rx_vec_allowed in iavf_dev_rx_queue_setup(), but (struct iavf_adapter *)->rx_vec_allowed is never used afterwards.

Either conditions checked in check_rx_vec_allow() are useless and so it should be removed, or DP selection should take .rx_vec_allowed value into account.
Comment 1 David Marchand 2023-10-16 09:03:21 CEST
I am not sure this issue is still relevant.

This bug did not get attention from Intel maintainers, so I am assigning this bz explicitly in the hope it will get some eyes.
Thanks.
Comment 2 dengkaiwen 2023-11-01 07:27:56 CET
Hi All,

In the latest code, (struct iavf_adapter *)->rx_vec_allowed is used after being assigned.
commit id: d492ea071056a8a0de2991c42daee9d9acca8e35

If there are no further questions, I think we can close this ticket.

Thanks
Kaiwen Deng
Comment 3 David Marchand 2023-11-07 10:22:39 CET
It seems that the bug has been fixed, though the mentionned commit was not marked for backport. Cc Bruce for his opinion.
Comment 4 Bruce Richardson 2023-11-07 10:45:14 CET
Not sure that that is a proper fix. While the value is now being used in iavf_dev_rx_queue_setup(), there are other calls for setting up vector_rx in that driver, and those do not check rx_vec_allowed. For example, in iavf_set_rx_function.