Hi all, I observed a significant performance impact from internal libvnet calls going through the PLT on a Xeon Platinum 8168 (Skylake-SP).
As a diagnostic test, I linked libvnet with -Wl,-Bsymbolic-functions. The results were: -throughput: +17.7% -cycles/packet: -14.9% -branch misses: 8.17 -> 3.37 per packet On a Xeon Gold 6248R (Cascade Lake), the same test had only a small effect: +0.93% throughput and -0.92% cycles/packet. This suggests a platform-specific difference in the handling of the PLT/indirect-branch path. I have not tested this on ARM, but the impact could also be significant on some ARM microarchitectures. Since -Bsymbolic-functions changes interposition semantics, I consider this a diagnostic result rather than an upstream-ready fix. Has anyone investigated this before, or does anything rely on interposing libvnet functions for calls originating inside libvnet? Jerome
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#27116): https://lists.fd.io/g/vpp-dev/message/27116 Mute This Topic: https://lists.fd.io/mt/120410674/21656 Group Owner: [email protected] Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/14379924/21656/631435203/xyzzy [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
