[dpdk-dev] [PATCH v3 02/18] eal: add default SIMD bitwidth values
Ciara Power
ciara.power at intel.com
Wed Sep 30 15:03:58 CEST 2020
Each arch has a define for the default SIMD bitwidth value, this is used
on EAL init to set the config max SIMD bitwidth.
Cc: Ruifeng Wang <ruifeng.wang at arm.com>
Cc: Jerin Jacob <jerinj at marvell.com>
Cc: Honnappa Nagarahalli <honnappa.nagarahalli at arm.com>
Cc: David Christensen <drc at linux.vnet.ibm.com>
Signed-off-by: Ciara Power <ciara.power at intel.com>
---
v3:
- Removed unnecessary define in generic rte_vect.h
- Changed default bitwidth for ARM to UINT16_MAX, to allow for SVE.
v2: Changed default bitwidth for Arm to 128.
---
lib/librte_eal/arm/include/rte_vect.h | 2 ++
lib/librte_eal/common/eal_common_options.c | 3 +++
lib/librte_eal/ppc/include/rte_vect.h | 2 ++
lib/librte_eal/x86/include/rte_vect.h | 2 ++
4 files changed, 9 insertions(+)
diff --git a/lib/librte_eal/arm/include/rte_vect.h b/lib/librte_eal/arm/include/rte_vect.h
index 01c51712a1..a3508e69d5 100644
--- a/lib/librte_eal/arm/include/rte_vect.h
+++ b/lib/librte_eal/arm/include/rte_vect.h
@@ -14,6 +14,8 @@
extern "C" {
#endif
+#define RTE_DEFAULT_SIMD_BITWIDTH UINT16_MAX
+
typedef int32x4_t xmm_t;
#define XMM_SIZE (sizeof(xmm_t))
diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index e9117a96af..d412cae89b 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -35,6 +35,7 @@
#ifndef RTE_EXEC_ENV_WINDOWS
#include <rte_telemetry.h>
#endif
+#include <rte_vect.h>
#include "eal_internal_cfg.h"
#include "eal_options.h"
@@ -344,6 +345,8 @@ eal_reset_internal_config(struct internal_config *internal_cfg)
internal_cfg->user_mbuf_pool_ops_name = NULL;
CPU_ZERO(&internal_cfg->ctrl_cpuset);
internal_cfg->init_complete = 0;
+ internal_cfg->max_simd_bitwidth.bitwidth = RTE_DEFAULT_SIMD_BITWIDTH;
+ internal_cfg->max_simd_bitwidth.locked = 0;
}
static int
diff --git a/lib/librte_eal/ppc/include/rte_vect.h b/lib/librte_eal/ppc/include/rte_vect.h
index b0545c878c..70fbd0c423 100644
--- a/lib/librte_eal/ppc/include/rte_vect.h
+++ b/lib/librte_eal/ppc/include/rte_vect.h
@@ -15,6 +15,8 @@
extern "C" {
#endif
+#define RTE_DEFAULT_SIMD_BITWIDTH 256
+
typedef vector signed int xmm_t;
#define XMM_SIZE (sizeof(xmm_t))
diff --git a/lib/librte_eal/x86/include/rte_vect.h b/lib/librte_eal/x86/include/rte_vect.h
index df5a607623..b1df75aca7 100644
--- a/lib/librte_eal/x86/include/rte_vect.h
+++ b/lib/librte_eal/x86/include/rte_vect.h
@@ -35,6 +35,8 @@
extern "C" {
#endif
+#define RTE_DEFAULT_SIMD_BITWIDTH 256
+
typedef __m128i xmm_t;
#define XMM_SIZE (sizeof(xmm_t))
--
2.17.1
More information about the dev
mailing list