Hi,
On Mon, 28 Jul 2025, 배성종 wrote:
Hello commit authors (and maintainers),
I'm currently working with rte_flow_async_create() using the postpone flag,
along with rte_flow_push/pull() for batching, in a scenario involving thousands
of flows on a BlueField-2
system.
My goal is to implement hardware steering such that ingress traffic bypasses
the ARM core of the BF2, and egress traffic does the same.
According to the DPDK documentation, rte_flow_push/pull() seems to be intended
for use as a batch operation, wrapping a large for loop that issues multiple
flow operations, and then
committing them to hardware in one go.
However, I’ve observed that when multiple cores simultaneously insert flow
rules, using rte_flow_push/pull() in such a batched way can result in the rule
insertion operations not being
properly transmitted to the hardware. Specifically, the internal function
mlx5dr_send_all_dep_wqe() ends up getting stuck in its while loop.
Interestingly, if I call rte_flow_push/pull() after each individual
rte_flow_async_create() operation, even though that usage seems contrary to the
intended batching model, the infinite
loop issue is significantly mitigated. The frequency of getting stuck in
mlx5dr_send_all_dep_wqe() drops drastically—though it still occurs occasionally.
In summary, calling rte_flow_push/pull() after each rte_flow_async_create()
seems to avoid the infinite loop, but I’m unsure if this is an expected usage
pattern. I would like to ask:
*
Is this behavior intentional?
*
Am I misunderstanding the design or usage expectations for
rte_flow_push/pull() in multi-core scenarios?
Perhaps my question is a bit out of place and wrong, but, given the fact there
are no code snippets to take a look at, are you using separate flow queues for
submitting the operations, one flow queue per lcore?
Thank you.
Thank you for your time and support.
Sincerely,
Seongjong Bae M.S. Student T-Networking Lab.
[AIorK4yCWXBmHrQ1GGSZ1Kc18irHfB1S9x_FqTeAHsxNIdnf_olG-PRjFVlItUw34zr1tnNwkP5AlPTomK87]
Email
sjbae1...@gmail.com
Mobile
(+82)01089640524
Web.
https://tnet.snu.ac.kr/
[a81b6766e3d5b6518dc4010493c7772f5a46f598.png?u=11013800]