On 2024-05-28 09:43, Mattias Rönnblom wrote:
Provide build option to have functions in <rte_memcpy.h> delegate to
the standard compiler/libc memcpy(), instead of using the various
traditional, handcrafted, per-architecture rte_memcpy()

A new meson build option 'use_cc_memcpy' is added. The default is
true. It's not obvious what should be the default, but compiler
memcpy() is enabled by default in this RFC so any tests run with this
patch use the new approach.

One purpose of this RFC is to make it easy to evaluate the costs and
benefits of a switch.

I've tested this patch some with DSW micro benchmarks, and the result is a 2.5% reduction of the DSW+testapp overhead with cc/libc memcpy. GCC 11.4.

We've also run characteristic test suite of a large, real world app. Here, we saw no effect. GCC 10.5.

x86_64 in both cases (Skylake and Raptor Lake).

Last time we did the same, there were a noticeable performance degradation in both the above cases.

This is not a lot of data points, but I think it we should consider making the custom RTE memcpy() implementations optional in the next release, and if no-one complains, remove the implementations in the next release.

(Whether or not [or how long] to keep the wrapper API is another question.)


Reply via email to