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]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to