From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4C278A04DB; Fri, 16 Oct 2020 17:46:24 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D7EEA1EFE9; Fri, 16 Oct 2020 17:45:50 +0200 (CEST) Received: from qrelay63.mxroute.com (qrelay63.mxroute.com [172.82.139.63]) by dpdk.org (Postfix) with ESMTP id 756F01EFD7 for ; Fri, 16 Oct 2020 17:45:48 +0200 (CEST) Received: from filter003.mxroute.com ([168.235.111.26] 168-235-111-26.cloud.ramnode.com) (Authenticated sender: mN4UYu2MZsgR) by qrelay63.mxroute.com (ZoneMTA) with ESMTPA id 17532169c9e0004a7f.003 for ; Fri, 16 Oct 2020 15:45:44 +0000 X-Zone-Loop: dad0782c24bd622fda357ce217ae7a56406b797d2047 X-Originating-IP: [168.235.111.26] Received: from echo.mxrouting.net (echo.mxrouting.net [116.202.222.109]) by filter003.mxroute.com (Postfix) with ESMTPS id 0A32C60038; Fri, 16 Oct 2020 15:45:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=ashroe.eu; s=x; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version:Date: Message-ID:From:References:Cc:To:Subject:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=rph92qDgDm4Gporn9vEM+wu2ZgdZi+dmbQH4lRlh3e8=; b=kZu23tiaO71a/r8wEa0oH41YNm uGsrtbqvHJoOyvglco0/rbsZPHRAHgd1WseebwO57O4J2oADqFp/OAdJMdL21PeF7TKDsQCYqZBKT b5d4MLLVxTB4kVdadVSrW0JCeYADQnDXnMSdyDm5a4VPS8h9OyaOYx3NGD4dXykz1rFHuEqqjUdnl pOhX0cc+O9YVn5c8lf5MfxdfBbeED3/7kLRSSnBw5HP3V8xR3Dfji6VYZNXFMAKCJ9ychUpcgb3DR f/hkf3Ehc3RdxU/pz2+7LZ9dPGbi0YRZDoAn5XXOcZsyVovvzitRgYvIwBbq9FPqK8ED/nnyMB1QT lUjDbdPw==; To: Ciara Power , dev@dpdk.org Cc: viktorin@rehivetech.com, ruifeng.wang@arm.com, jerinj@marvell.com, drc@linux.vnet.ibm.com, bruce.richardson@intel.com, konstantin.ananyev@intel.com, david.marchand@redhat.com, Honnappa Nagarahalli , Dmitry Kozlyuk , Narcisa Ana Maria Vasile , Dmitry Malloy , Pallavi Kadam , Neil Horman References: <20200807155859.63888-1-ciara.power@intel.com> <20201016142742.87297-1-ciara.power@intel.com> <20201016142742.87297-2-ciara.power@intel.com> From: "Kinsella, Ray" Autocrypt: addr=mdr@ashroe.eu; keydata= mQINBFv8B3wBEAC+5ImcgbIvadt3axrTnt7Sxch3FsmWTTomXfB8YiuHT8KL8L/bFRQSL1f6 ASCHu3M89EjYazlY+vJUWLr0BhK5t/YI7bQzrOuYrl9K94vlLwzD19s/zB/g5YGGR5plJr0s JtJsFGEvF9LL3e+FKMRXveQxBB8A51nAHfwG0WSyx53d61DYz7lp4/Y4RagxaJoHp9lakn8j HV2N6rrnF+qt5ukj5SbbKWSzGg5HQF2t0QQ5tzWhCAKTfcPlnP0GymTBfNMGOReWivi3Qqzr S51Xo7hoGujUgNAM41sxpxmhx8xSwcQ5WzmxgAhJ/StNV9cb3HWIoE5StCwQ4uXOLplZNGnS uxNdegvKB95NHZjRVRChg/uMTGpg9PqYbTIFoPXjuk27sxZLRJRrueg4tLbb3HM39CJwSB++ YICcqf2N+GVD48STfcIlpp12/HI+EcDSThzfWFhaHDC0hyirHxJyHXjnZ8bUexI/5zATn/ux TpMbc/vicJxeN+qfaVqPkCbkS71cHKuPluM3jE8aNCIBNQY1/j87k5ELzg3qaesLo2n1krBH bKvFfAmQuUuJT84/IqfdVtrSCTabvDuNBDpYBV0dGbTwaRfE7i+LiJJclUr8lOvHUpJ4Y6a5 0cxEPxm498G12Z3NoY/mP5soItPIPtLR0rA0fage44zSPwp6cQARAQABtBxSYXkgS2luc2Vs bGEgPG1kckBhc2hyb2UuZXU+iQJUBBMBCAA+FiEEcDUDlKDJaDuJlfZfdJdaH/sCCpsFAlv8 B3wCGyMFCQlmAYAFCwkIBwIGFQoJCAsCBBYCAwECHgECF4AACgkQdJdaH/sCCptdtRAAl0oE msa+djBVYLIsax+0f8acidtWg2l9f7kc2hEjp9h9aZCpPchQvhhemtew/nKavik3RSnLTAyn B3C/0GNlmvI1l5PFROOgPZwz4xhJKGN7jOsRrbkJa23a8ly5UXwF3Vqnlny7D3z+7cu1qq/f VRK8qFyWkAb+xgqeZ/hTcbJUWtW+l5Zb+68WGEp8hB7TuJLEWb4+VKgHTpQ4vElYj8H3Z94a 04s2PJMbLIZSgmKDASnyrKY0CzTpPXx5rSJ1q+B1FCsfepHLqt3vKSALa3ld6bJ8fSJtDUJ7 JLiU8dFZrywgDIVme01jPbjJtUScW6jONLvhI8Z2sheR71UoKqGomMHNQpZ03ViVWBEALzEt TcjWgJFn8yAmxqM4nBnZ+hE3LbMo34KCHJD4eg18ojDt3s9VrDLa+V9fNxUHPSib9FD9UX/1 +nGfU/ZABmiTuUDM7WZdXri7HaMpzDRJUKI6b+/uunF8xH/h/MHW16VuMzgI5dkOKKv1LejD dT5mA4R+2zBS+GsM0oa2hUeX9E5WwjaDzXtVDg6kYq8YvEd+m0z3M4e6diFeLS77/sAOgaYL 92UcoKD+Beym/fVuC6/55a0e12ksTmgk5/ZoEdoNQLlVgd2INtvnO+0k5BJcn66ZjKn3GbEC VqFbrnv1GnA58nEInRCTzR1k26h9nmS5Ag0EW/wHfAEQAMth1vHr3fOZkVOPfod3M6DkQir5 xJvUW5EHgYUjYCPIa2qzgIVVuLDqZgSCCinyooG5dUJONVHj3nCbITCpJp4eB3PI84RPfDcC hf/V34N/Gx5mTeoymSZDBmXT8YtvV/uJvn+LvHLO4ZJdvq5ZxmDyxfXFmkm3/lLw0+rrNdK5 pt6OnVlCqEU9tcDBezjUwDtOahyV20XqxtUttN4kQWbDRkhT+HrA9WN9l2HX91yEYC+zmF1S OhBqRoTPLrR6g4sCWgFywqztpvZWhyIicJipnjac7qL/wRS+wrWfsYy6qWLIV80beN7yoa6v ccnuy4pu2uiuhk9/edtlmFE4dNdoRf7843CV9k1yRASTlmPkU59n0TJbw+okTa9fbbQgbIb1 pWsAuicRHyLUIUz4f6kPgdgty2FgTKuPuIzJd1s8s6p2aC1qo+Obm2gnBTduB+/n1Jw+vKpt 07d+CKEKu4CWwvZZ8ktJJLeofi4hMupTYiq+oMzqH+V1k6QgNm0Da489gXllU+3EFC6W1qKj tkvQzg2rYoWeYD1Qn8iXcO4Fpk6wzylclvatBMddVlQ6qrYeTmSbCsk+m2KVrz5vIyja0o5Y yfeN29s9emXnikmNfv/dA5fpi8XCANNnz3zOfA93DOB9DBf0TQ2/OrSPGjB3op7RCfoPBZ7u AjJ9dM7VABEBAAGJAjwEGAEIACYWIQRwNQOUoMloO4mV9l90l1of+wIKmwUCW/wHfAIbDAUJ CWYBgAAKCRB0l1of+wIKm3KlD/9w/LOG5rtgtCUWPl4B3pZvGpNym6XdK8cop9saOnE85zWf u+sKWCrxNgYkYP7aZrYMPwqDvilxhbTsIJl5HhPgpTO1b0i+c0n1Tij3EElj5UCg3q8mEc17 c+5jRrY3oz77g7E3oPftAjaq1ybbXjY4K32o3JHFR6I8wX3m9wJZJe1+Y+UVrrjY65gZFxcA thNVnWKErarVQGjeNgHV4N1uF3pIx3kT1N4GSnxhoz4Bki91kvkbBhUgYfNflGURfZT3wIKK +d50jd7kqRouXUCzTdzmDh7jnYrcEFM4nvyaYu0JjSS5R672d9SK5LVIfWmoUGzqD4AVmUW8 pcv461+PXchuS8+zpltR9zajl72Q3ymlT4BTAQOlCWkD0snBoKNUB5d2EXPNV13nA0qlm4U2 GpROfJMQXjV6fyYRvttKYfM5xYKgRgtP0z5lTAbsjg9WFKq0Fndh7kUlmHjuAIwKIV4Tzo75 QO2zC0/NTaTjmrtiXhP+vkC4pcrOGNsbHuaqvsc/ZZ0siXyYsqbctj/sCd8ka2r94u+c7o4l BGaAm+FtwAfEAkXHu4y5Phuv2IRR+x1wTey1U1RaEPgN8xq0LQ1OitX4t2mQwjdPihZQBCnZ wzOrkbzlJMNrMKJpEgulmxAHmYJKgvZHXZXtLJSejFjR0GdHJcL5rwVOMWB8cg== Message-ID: Date: Fri, 16 Oct 2020 16:45:39 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.12.1 MIME-Version: 1.0 In-Reply-To: <20201016142742.87297-2-ciara.power@intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-AuthUser: mdr@ashroe.eu Subject: Re: [dpdk-dev] [PATCH v9 01/18] eal: add max SIMD bitwidth X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 16/10/2020 15:27, Ciara Power wrote: > This patch adds a max SIMD bitwidth EAL configuration. The API allows > for an app to set this value. It can also be set using EAL argument > --force-max-simd-bitwidth, which will lock the value and override any > modifications made by the app. > > 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 > Cc: Jerin Jacob > Cc: Honnappa Nagarahalli > Cc: David Christensen > > Signed-off-by: Ciara Power > Acked-by: Konstantin Ananyev > Reviewed-by: Ruifeng Wang > > --- > v9: Added release note. > v7: Reordered entries in the symbol .map file. > v4: > - Used RTE_SIMD_MAX instead of UINT16_MAX. > - Renamed enums to better reflect usage. > - Added functions to windows symbol export file. > - Modified Doxygen comments. > - Modified enum name. > - Changed RTE_SIMD_MAX value to a power of 2. > - Merged patch 2 into this patch. > - Enum now used for default value defines. > - Fixed some small comments on v3. > v3: > - Added enum value to essentially disable using max SIMD to choose > paths, intended for use by ARM SVE. > - Fixed parsing bitwidth argument to return an error for values > greater than uint16_t. > - Removed unnecessary define in generic rte_vect.h > - Changed default bitwidth for ARM to UINT16_MAX, to allow for SVE. > v2: > - Added to Doxygen comment for API. > - Changed default bitwidth for Arm to 128. > --- > doc/guides/rel_notes/release_20_11.rst | 6 ++ > lib/librte_eal/arm/include/rte_vect.h | 2 + > lib/librte_eal/common/eal_common_options.c | 66 ++++++++++++++++++++++ > lib/librte_eal/common/eal_internal_cfg.h | 8 +++ > lib/librte_eal/common/eal_options.h | 2 + > lib/librte_eal/include/rte_eal.h | 40 +++++++++++++ > lib/librte_eal/ppc/include/rte_vect.h | 2 + > lib/librte_eal/rte_eal_exports.def | 2 + > lib/librte_eal/rte_eal_version.map | 2 + > lib/librte_eal/x86/include/rte_vect.h | 2 + > 10 files changed, 132 insertions(+) > > diff --git a/doc/guides/rel_notes/release_20_11.rst b/doc/guides/rel_notes/release_20_11.rst > index 48717ee536..4d2b949a6e 100644 > --- a/doc/guides/rel_notes/release_20_11.rst > +++ b/doc/guides/rel_notes/release_20_11.rst > @@ -77,6 +77,12 @@ New Features > This API is specific to x86 and implemented as a stub for other > architectures. > > +* **Added support for limiting maximum SIMD bitwidth.** > + > + Added a new EAL config setting ``max_simd_bitwidth`` to limit the vector > + path selection at runtime. This value can be set by apps using the > + ``rte_set_max_simd_bitwidth`` function, or by the user with EAL flag ``--force-max-simd-bitwidth``. > + > * **Updated CRC modules of the net library.** > > * Added runtime selection of the optimal architecture-specific CRC path. > diff --git a/lib/librte_eal/arm/include/rte_vect.h b/lib/librte_eal/arm/include/rte_vect.h > index f6a455b4e7..df8fb8b670 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 RTE_SIMD_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 a5426e1234..8c79f1b2fc 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 > #endif > +#include > > #include "eal_internal_cfg.h" > #include "eal_options.h" > @@ -102,6 +103,7 @@ eal_long_options[] = { > {OPT_MATCH_ALLOCATIONS, 0, NULL, OPT_MATCH_ALLOCATIONS_NUM}, > {OPT_TELEMETRY, 0, NULL, OPT_TELEMETRY_NUM }, > {OPT_NO_TELEMETRY, 0, NULL, OPT_NO_TELEMETRY_NUM }, > + {OPT_FORCE_MAX_SIMD_BITWIDTH, 1, NULL, OPT_FORCE_MAX_SIMD_BITWIDTH_NUM}, > {0, 0, NULL, 0 } > }; > > @@ -343,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.forced = 0; > } > > static int > @@ -1309,6 +1313,34 @@ eal_parse_iova_mode(const char *name) > return 0; > } > > +static int > +eal_parse_simd_bitwidth(const char *arg) > +{ > + char *end; > + unsigned long bitwidth; > + int ret; > + struct internal_config *internal_conf = > + eal_get_internal_configuration(); > + > + if (arg == NULL || arg[0] == '\0') > + return -1; > + > + errno = 0; > + bitwidth = strtoul(arg, &end, 0); > + > + /* check for errors */ > + if (errno != 0 || end == NULL || *end != '\0' || bitwidth > RTE_SIMD_MAX) > + return -1; > + > + if (bitwidth == 0) > + bitwidth = (unsigned long) RTE_SIMD_MAX; > + ret = rte_set_max_simd_bitwidth(bitwidth); > + if (ret < 0) > + return -1; > + internal_conf->max_simd_bitwidth.forced = 1; > + return 0; > +} > + > static int > eal_parse_base_virtaddr(const char *arg) > { > @@ -1707,6 +1739,13 @@ eal_parse_common_option(int opt, const char *optarg, > case OPT_NO_TELEMETRY_NUM: > conf->no_telemetry = 1; > break; > + case OPT_FORCE_MAX_SIMD_BITWIDTH_NUM: > + if (eal_parse_simd_bitwidth(optarg) < 0) { > + RTE_LOG(ERR, EAL, "invalid parameter for --" > + OPT_FORCE_MAX_SIMD_BITWIDTH "\n"); > + return -1; > + } > + break; > > /* don't know what to do, leave this to caller */ > default: > @@ -1903,6 +1942,32 @@ eal_check_common_options(struct internal_config *internal_cfg) > return 0; > } > > +uint16_t > +rte_get_max_simd_bitwidth(void) > +{ > + const struct internal_config *internal_conf = > + eal_get_internal_configuration(); > + return internal_conf->max_simd_bitwidth.bitwidth; > +} > + > +int > +rte_set_max_simd_bitwidth(uint16_t bitwidth) > +{ > + struct internal_config *internal_conf = > + eal_get_internal_configuration(); > + if (internal_conf->max_simd_bitwidth.forced) { > + RTE_LOG(NOTICE, EAL, "Cannot set max SIMD bitwidth - user runtime override enabled"); > + return -EPERM; > + } > + > + if (bitwidth < RTE_SIMD_DISABLED || !rte_is_power_of_2(bitwidth)) { > + RTE_LOG(ERR, EAL, "Invalid bitwidth value!\n"); > + return -EINVAL; > + } > + internal_conf->max_simd_bitwidth.bitwidth = bitwidth; > + return 0; > +} > + > void > eal_common_usage(void) > { > @@ -1981,6 +2046,7 @@ eal_common_usage(void) > " --"OPT_BASE_VIRTADDR" Base virtual address\n" > " --"OPT_TELEMETRY" Enable telemetry support (on by default)\n" > " --"OPT_NO_TELEMETRY" Disable telemetry support\n" > + " --"OPT_FORCE_MAX_SIMD_BITWIDTH" Force the max SIMD bitwidth\n" > "\nEAL options for DEBUG use only:\n" > " --"OPT_HUGE_UNLINK" Unlink hugepage files after init\n" > " --"OPT_NO_HUGE" Use malloc instead of hugetlbfs\n" > diff --git a/lib/librte_eal/common/eal_internal_cfg.h b/lib/librte_eal/common/eal_internal_cfg.h > index de627c7627..51dbe86e2b 100644 > --- a/lib/librte_eal/common/eal_internal_cfg.h > +++ b/lib/librte_eal/common/eal_internal_cfg.h > @@ -33,6 +33,12 @@ struct hugepage_info { > int lock_descriptor; /**< file descriptor for hugepage dir */ > }; > > +struct simd_bitwidth { > + bool forced; > + /**< flag indicating if bitwidth is forced and can't be modified */ > + uint16_t bitwidth; /**< bitwidth value */ > +}; > + > /** > * internal configuration > */ > @@ -85,6 +91,8 @@ struct internal_config { > volatile unsigned int init_complete; > /**< indicates whether EAL has completed initialization */ > unsigned int no_telemetry; /**< true to disable Telemetry */ > + struct simd_bitwidth max_simd_bitwidth; > + /**< max simd bitwidth path to use */ > }; > > void eal_reset_internal_config(struct internal_config *internal_cfg); > diff --git a/lib/librte_eal/common/eal_options.h b/lib/librte_eal/common/eal_options.h > index 89769d48b4..ef33979664 100644 > --- a/lib/librte_eal/common/eal_options.h > +++ b/lib/librte_eal/common/eal_options.h > @@ -85,6 +85,8 @@ enum { > OPT_TELEMETRY_NUM, > #define OPT_NO_TELEMETRY "no-telemetry" > OPT_NO_TELEMETRY_NUM, > +#define OPT_FORCE_MAX_SIMD_BITWIDTH "force-max-simd-bitwidth" > + OPT_FORCE_MAX_SIMD_BITWIDTH_NUM, > OPT_LONG_MAX_NUM > }; > > diff --git a/lib/librte_eal/include/rte_eal.h b/lib/librte_eal/include/rte_eal.h > index e3c2ef185e..706d3cca5a 100644 > --- a/lib/librte_eal/include/rte_eal.h > +++ b/lib/librte_eal/include/rte_eal.h > @@ -43,6 +43,23 @@ enum rte_proc_type_t { > RTE_PROC_INVALID > }; > > +/** > + * The max SIMD bitwidth value to limit vector path selection. > + */ > +enum rte_max_simd { > + RTE_SIMD_DISABLED = 64, > + /**< Limits path selection to scalar, disables all vector paths. */ > + RTE_SIMD_128 = 128, > + /**< Limits path selection to SSE/NEON/Altivec or below. */ > + RTE_SIMD_256 = 256, /**< Limits path selection to AVX2 or below. */ > + RTE_SIMD_512 = 512, /**< Limits path selection to AVX512 or below. */ > + RTE_SIMD_MAX = INT16_MAX + 1, > + /**< > + * Disables limiting by max SIMD bitwidth, allows all suitable paths. > + * This value is used as it is a large number and a power of 2. > + */ > +}; > + > /** > * Get the process type in a multi-process setup > * > @@ -51,6 +68,29 @@ enum rte_proc_type_t { > */ > enum rte_proc_type_t rte_eal_process_type(void); > > +/** > + * Get the supported SIMD bitwidth. > + * > + * @return > + * uint16_t bitwidth. > + */ > +__rte_experimental > +uint16_t rte_get_max_simd_bitwidth(void); > + > +/** > + * Set the supported SIMD bitwidth. > + * This API should only be called once at initialization, before EAL init. > + * > + * @param bitwidth > + * uint16_t bitwidth. > + * @return > + * - 0 on success. > + * - -EINVAL on invalid bitwidth parameter. > + * - -EPERM if bitwidth is forced. > + */ > +__rte_experimental > +int rte_set_max_simd_bitwidth(uint16_t bitwidth); > + > /** > * Request iopl privilege for all RPL. > * > diff --git a/lib/librte_eal/ppc/include/rte_vect.h b/lib/librte_eal/ppc/include/rte_vect.h > index b0545c878c..a69aabc568 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 RTE_SIMD_256 > + > typedef vector signed int xmm_t; > > #define XMM_SIZE (sizeof(xmm_t)) > diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def > index 975acb8ffe..b61e9a0f6e 100644 > --- a/lib/librte_eal/rte_eal_exports.def > +++ b/lib/librte_eal/rte_eal_exports.def > @@ -59,6 +59,7 @@ EXPORTS > rte_exit > rte_free > rte_get_master_lcore > + rte_get_max_simd_bitwidth > rte_get_next_lcore > rte_get_tsc_hz > rte_hexdump > @@ -147,6 +148,7 @@ EXPORTS > rte_service_set_stats_enable > rte_service_start_with_defaults > rte_set_application_usage_hook > + rte_set_max_simd_bitwidth > rte_socket_count > rte_socket_id > rte_socket_id_by_idx > diff --git a/lib/librte_eal/rte_eal_version.map b/lib/librte_eal/rte_eal_version.map > index f56de02d8f..80f6911322 100644 > --- a/lib/librte_eal/rte_eal_version.map > +++ b/lib/librte_eal/rte_eal_version.map > @@ -398,7 +398,9 @@ EXPERIMENTAL { > > # added in 20.11 > __rte_eal_trace_generic_size_t; > + rte_get_max_simd_bitwidth; > rte_service_lcore_may_be_active; > + rte_set_max_simd_bitwidth; > }; > > INTERNAL { > diff --git a/lib/librte_eal/x86/include/rte_vect.h b/lib/librte_eal/x86/include/rte_vect.h > index 64383c3606..f0aad9615e 100644 > --- a/lib/librte_eal/x86/include/rte_vect.h > +++ b/lib/librte_eal/x86/include/rte_vect.h > @@ -36,6 +36,8 @@ > extern "C" { > #endif > > +#define RTE_DEFAULT_SIMD_BITWIDTH RTE_SIMD_256 > + > typedef __m128i xmm_t; > > #define XMM_SIZE (sizeof(xmm_t)) > Acked-by: Ray Kinsella