net/i40e: add option to use latest vector path
authorXiaoyun Li <xiaoyun.li@intel.com>
Tue, 18 Sep 2018 02:22:40 +0000 (10:22 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 27 Sep 2018 23:41:01 +0000 (01:41 +0200)
commitc11f6540424750af68ab5cdb68e7e8c9892fed07
treeae6e375950cd300609eda42bdcdc9e8047618788
parentc322c0e558b6aea7bc32c807197bdb44d345002b
net/i40e: add option to use latest vector path

For IA, the AVX2 vector path is only recommended to be used on later
platforms (identified by AVX512 support, like SKL etc.) This is because
performance benchmark shows downgrade when running AVX2 vector path on
early platform (BDW/HSW) in some cases. But we still observe perf gain
with some real work loading.

So this patch introduced the new devarg use-latest-supported-vec to
force the driver always selecting the latest supported vec path. Then
apps are able to take AVX2 path on early platforms. And this logic can
be re-used if we will have AVX512 vec path in future.

This patch only affects IA platforms. The selected vec path would be
like the following:
  Without devarg/devarg = 0:
  Machine vPMD
  AVX512F AVX2
  AVX2 SSE4.2
  SSE4.2 SSE4.2
  <SSE4.2 Not Supported

  With devarg = 1
  Machine vPMD
  AVX512F AVX2
  AVX2 AVX2
  SSE4.2 SSE4.2
  <SSE4.2 Not Supported

Other platforms can also apply the same logic if necessary in future.

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
doc/guides/nics/i40e.rst
doc/guides/rel_notes/release_18_11.rst
drivers/net/i40e/i40e_ethdev.c
drivers/net/i40e/i40e_ethdev.h
drivers/net/i40e/i40e_rxtx.c