Hi, I have seen lot of worker hand offs in one of my use case testing. These Hand offs are causing performance hit.
I have GENEVE encapsulated inbound traffic coming into VPP via af-xdp_input(af xdp socket). This traffic is already RSS'd to one of the RX queues by NIC. Post this, each WK that was polling different RX queue gets traffic and handles it. Once traffic reached nat-ed-out2in graph, I have seen it is calculating hash to find out target WK. In my case, I have seen that all pkts of GENEVE are handed off to another WK(100% handoff) for doing geneve decapsulation. Due to this my performance is hit. In my case there's just one geneve tunnel (could be few more in production) between my device and edge device. As all pkts of geneve have the same 4/5 tuple, I expected the hashes of NIC RSS and the hash calculated by nat44-ed-out2in to be same. But since the hash algorithm used in these two are different, we are seeing VPP worker 100% hand-offs in a worst case after receiving geneve traffic. As my use case have very few geneve tunnels on the edge device which is vpp, I want to treat the vpp wk receiving pkts itself as the anchoring wk for the received geneve flows and change the nat graphs mentioned to do the same. Doing this, vpp nat will align with RSS identified core/wk and pkts are locally processed and no hand offs improving performance. Pls let me know your thoughts Regards, Vijay
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#27151): https://lists.fd.io/g/vpp-dev/message/27151 Mute This Topic: https://lists.fd.io/mt/121008498/21656 Group Owner: [email protected] Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
