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

Reply via email to