Go to file
Zhihong Wang 9144d6bcde eal/x86: optimize memcpy for SSE and AVX
Main code changes:

1. Differentiate architectural features based on CPU flags
    a. Implement separated move functions for SSE/AVX/AVX2 to make full utilization of cache bandwidth
    b. Implement separated copy flow specifically optimized for target architecture

2. Rewrite the memcpy function "rte_memcpy"
    a. Add store aligning
    b. Add load aligning based on architectural features
    c. Put block copy loop into inline move functions for better control of instruction order
    d. Eliminate unnecessary MOVs

3. Rewrite the inline move functions
    a. Add move functions for unaligned load cases
    b. Change instruction order in copy loops for better pipeline utilization
    c. Use intrinsics instead of assembly code

4. Remove slow glibc call for constant copies

Test report: http://dpdk.org/ml/archives/dev/2015-January/011848.html

Signed-off-by: Zhihong Wang <zhihong.wang@intel.com>
Tested-by: Jingguo Fu <jingguox.fu@intel.com>
Reviewed-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Cunming Liang <cunming.liang@intel.com>
Acked-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
2015-02-25 11:50:53 +01:00
app app/test: extend memcpy test coverage 2015-02-25 11:34:23 +01:00
config jobstats: new library 2015-02-24 22:12:35 +01:00
doc doc: update programmers guide for uio_pci_generic 2015-02-24 22:37:38 +01:00
examples examples/l2fwd-jobstats: add new example 2015-02-25 10:23:31 +01:00
lib eal/x86: optimize memcpy for SSE and AVX 2015-02-25 11:50:53 +01:00
mk examples/l2fwd-jobstats: new example 2015-02-24 22:19:25 +01:00
pkg version: 1.8.0 2014-12-20 00:38:39 +01:00
scripts scripts: find areas without maintainer 2015-02-09 15:15:04 +01:00
tools tools: enable binding device to uio_pci_generic 2015-02-20 23:34:44 +01:00
.gitignore init DPDK repository 2013-03-07 10:57:42 +01:00
GNUmakefile remove trailing whitespaces 2014-06-11 00:29:34 +02:00
LICENSE.GPL doc: GPL/LGPL licenses 2013-07-25 14:43:06 +02:00
LICENSE.LGPL doc: fix file format (dos to unix) 2013-09-06 11:43:07 +02:00
MAINTAINERS maintainers: claim responsibility for jobstats library and example 2015-02-24 22:24:11 +01:00
Makefile remove trailing whitespaces 2014-06-11 00:29:34 +02:00