Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pingpong sample application stuck in rte_eth_tx_burst() #5

Open
plaublin opened this issue Jul 8, 2022 · 2 comments
Open

pingpong sample application stuck in rte_eth_tx_burst() #5

plaublin opened this issue Jul 8, 2022 · 2 comments

Comments

@plaublin
Copy link

plaublin commented Jul 8, 2022

Hello

Thank you for having developed and open-sourced UDPDK.

When I execute the pingpong application, the call to rte_eth_tx_burst() in udpdk_poller.c:flush_tx_table() is stuck. As a result no message is sent over the network. Strangely, when executing the application with gdb, adding a breakpoint to rte_eth_tx_burst(), and issuing next commands, the packet is sent over the network and correctly received by the other endpoint. This suggests to me there is a data race somewhere in the code.

I had to make a few small changes to the code and compilation process to fit with my environment (AMD EPYC 7543 and Mellanox ConnectX-6 Dx) that you can find here. However they should not impact the code in any negative way.

By any chance, would you have any pointers or ideas on the problem origin and/or how to debug it?

@plaublin
Copy link
Author

plaublin commented Jul 16, 2022

Hi. After more investigation the problem is related to the two processes (parent + child) not waiting correctly on each others. I didn't find a beautiful fix for now, but here is the fix with a 5sec sleep in the child.

For fun I have also bumped the DPDK version and created Rust bindings to UDPDK here.

@leoll2
Copy link
Owner

leoll2 commented Aug 26, 2022

Hi @plaublin, thanks for the fix and the Rust bindings, awesome work!
I will try to test the changes as soon as I get hardware to do it :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants