śr., 8 cze 2022 o 17:32 Stephen Hemminger <step...@networkplumber.org> napisał(a): > > On Wed, 8 Jun 2022 14:29:58 +0200 > Michał Krawczyk <m...@semihalf.com> wrote: > > > wt., 7 cze 2022 o 19:17 Stephen Hemminger <step...@networkplumber.org> > > napisał(a): > > > > > > Rte_memcpy is not needed for small objects only used on control > > > path. Regular memcpy is as fast or faster and there is more > > > robust since static analysis etc knows what it does. > > > > > > In this driver it was redefining all memcpy as rte_memcpy > > > which is even worse. > > > > Hi Stephen, > > > > I would like to shed some light on why we're redefining all the memcpy > > as rte_memcpy. The ENA HAL is unmodifiable, as it's shared across many > > platforms and we cannot simply adjust it for the DPDK. We can use the > > ena_plat_dpdk.h to change the ena_com (HAL) definitions, and that's > > what we're doing with memcpy. It's being used on the data path for the > > Tx, to copy the bounce buffers. Following the recommendations in [1] > > plus the results from [2], we wanted to make use of the optimized > > memcpy on the ENA's data path as well to reduce the CPU time spent in > > the PMD. I'm worried that removing rte_memcpy from the ena_plat_dpdk.h > > will result in some performance degradation for the ENA data path. > > However I understand your concerns for the control path and I'm ok > > with it. > > > > [1] > > https://doc.dpdk.org/guides/prog_guide/writing_efficient_code.html#memory > > [2] > > https://www.intel.com/content/www/us/en/developer/articles/technical/performance-optimization-of-memcpy-in-dpdk.html > > > > Thanks, > > Michal > > > > > I admit to having little sympathy unfixable for base/ style code. > You could have just replaced memcpy() in their with an abstraction layer > like other drivers. >
We'll probably end up with the solution you're suggesting. For now let's remove the memcpy redefinition at all to suppress the warnings. Acked-by: Michal Krawczyk <m...@semiahalf.com>