numam-dpdk/examples/l3fwd
Feifei Wang 39d21077e5 examples/l3fwd: prefetch the content of the next packet
The cache-misses problem is very serious when the function
lpm_cb_parse_ptype is called to read the content of packets. That is
because the contents of packages previously stored in the cache are
overwritten by the following instructions or variables.
Thus the prefetch order can be used to prefetch the next packet into
the cache to avoid CPU spending too much time on it.

On Octeon TX platform with built-in NIC, 12% performance gain was
measured by running RFC2544 NDR test with l3fwd. Furthermore, the
cache-misses event of the function lpm_cb_parse_ptype was reduced by
20%, and the CPU task-clock of it dropped from 16.49% to 11.3%, based
on the forwarding test for one minute with the 64B packet.
On the dpaa2 platform, no performance improvement nor drop were seen
with this patch by running RFC2544 NDR test with l3fwd.
On the x86 platform, 15.7% performance gain was measured by running
RFC2544 NDR test with l3fwd.

Signed-off-by: Feifei Wang <feifei.wang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
2019-10-27 18:21:16 +01:00
..
l3fwd_altivec.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd_common.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd_em_hlm_neon.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd_em_hlm_sse.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd_em_hlm.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd_em_sequential.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd_em.c examples/l3fwd: fix unaligned memory access on x86 2019-07-30 22:05:00 +02:00
l3fwd_em.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd_lpm_altivec.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd_lpm_neon.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd_lpm_sse.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd_lpm.c examples/l3fwd: prefetch the content of the next packet 2019-10-27 18:21:16 +01:00
l3fwd_lpm.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd_neon.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd_sse.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
l3fwd.h net: add rte prefix to IP structure 2019-05-24 13:34:46 +02:00
main.c examples: check status of getting MAC address 2019-10-07 15:00:55 +02:00
Makefile examples: fix pkg-config detection with older make 2019-07-03 23:10:23 +02:00
meson.build ethdev: remove experimental flag of ports enumeration 2018-04-27 18:00:24 +01:00