DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Stokes, Ian" <ian.stokes@intel.com>
To: "Richardson, Bruce" <bruce.richardson@intel.com>,
	"dev@dpdk.org" <dev@dpdk.org>
Cc: "Mcnamara, John" <john.mcnamara@intel.com>,
	"Richardson, Bruce" <bruce.richardson@intel.com>,
	Stephen Hemminger <stephen@networkplumber.org>,
	 "Singh, Aman Deep" <aman.deep.singh@intel.com>,
	"Dumitrescu, Cristian" <cristian.dumitrescu@intel.com>,
	John Daley <johndale@cisco.com>,
	"Hyong Youb Kim" <hyonkim@cisco.com>,
	Ziyang Xuan <xuanziyang2@huawei.com>,
	Xiaoyun Wang <cloud.wangxiaoyun@huawei.com>,
	Jie Hai <haijie1@huawei.com>, Jiawen Wu <jiawenwu@trustnetic.com>,
	Jian Wang <jianwang@trustnetic.com>,
	Shai Brandes <shaibran@amazon.com>,
	Evgeny Schemeilin <evgenys@amazon.com>,
	Ron Beider <rbeider@amazon.com>,
	Amit Bernstein <amitbern@amazon.com>,
	Wajeeh Atrash <atrwajee@amazon.com>,
	David Christensen <drc@linux.ibm.com>,
	"Dariusz Sosnowski" <dsosnowski@nvidia.com>,
	Viacheslav Ovsiienko <viacheslavo@nvidia.com>,
	Bing Zhao <bingz@nvidia.com>, Ori Kam <orika@nvidia.com>,
	Suanming Mou <suanmingm@nvidia.com>,
	Matan Azrad <matan@nvidia.com>,
	Maxime Coquelin <maxime.coquelin@redhat.com>,
	Chenbo Xia <chenbox@nvidia.com>,
	Paul Szczepanek <paul.szczepanek@arm.com>,
	Patrick Robb <probb@iol.unh.edu>,
	"Burakov, Anatoly" <anatoly.burakov@intel.com>,
	"Tyler Retzlaff" <roretzla@linux.microsoft.com>,
	Konstantin Ananyev <konstantin.v.ananyev@yandex.ru>
Subject: RE: [PATCH v2 2/2] build: replace support for icc with icx
Date: Mon, 10 Feb 2025 10:55:37 +0000	[thread overview]
Message-ID: <MW6PR11MB8309C6F70BD227906FA1938C92F22@MW6PR11MB8309.namprd11.prod.outlook.com> (raw)
In-Reply-To: <20250205182918.4041268-3-bruce.richardson@intel.com>

> The "Intel C++ Compiler" (icc) has been replaced by the newer clang-based
> "Intel oneAPI DPC++/C++ Compiler" (icx) compiler.  DPDK compilation has
> also not been tested recently with the icc compiler, so let's remove doc
> and code references to icc, and any special macros or build support that
> was added for it. Document instead that icx can be used to compile DPDK.
> 
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
> ---
> v2:
> - remove more references to icc.
> - in places where there was a comment indicating there was a workaround
>   for icc, but it wasn't obvious what the workaround was, just remove
>   the comment for now. The code is not broken, and so the workaround
>   remaining is harmless.
> 
> Feedback welcome from maintainers on how to correctly remove these
> workarounds! Will do v3 to fix them properly if feedback received!
> ---
>  app/test-pmd/testpmd.h                        |  4 ----
>  app/test/test_pie.c                           |  5 -----
>  app/test/test_red.c                           |  5 -----
>  buildtools/check-symbols.sh                   |  6 ++----
>  .../contributing/img/patch_cheatsheet.svg     |  2 +-
>  doc/guides/linux_gsg/sys_reqs.rst             |  3 +--
>  doc/guides/nics/enic.rst                      |  2 +-
>  doc/guides/nics/hinic.rst                     |  1 -
>  doc/guides/nics/hns3.rst                      |  1 -
>  doc/guides/nics/ngbe.rst                      |  1 -
>  doc/guides/nics/txgbe.rst                     |  1 -
>  doc/guides/prog_guide/lto.rst                 |  2 +-
>  .../prog_guide/writing_efficient_code.rst     |  2 +-
>  doc/guides/rel_notes/known_issues.rst         | 19 -------------------
>  doc/guides/rel_notes/release_25_03.rst        |  5 +++++
>  drivers/net/ena/ena_ethdev.c                  |  1 -
>  drivers/net/mlx5/mlx5_rxtx_vec_altivec.h      |  2 +-
>  drivers/net/virtio/meson.build                |  2 --
>  drivers/net/virtio/virtio_rxtx_packed.h       |  5 -----
>  dts/framework/config/__init__.py              |  2 --
>  dts/framework/testbed_model/posix_session.py  |  2 --
>  lib/eal/common/eal_common_dynmem.c            |  1 -
>  lib/eal/include/rte_common.h                  |  6 ++----
>  lib/eal/x86/include/rte_rtm.h                 |  2 +-
>  lib/eal/x86/include/rte_vect.h                | 15 +--------------
>  lib/sched/rte_pie.c                           |  4 ----
>  lib/sched/rte_red.c                           |  4 ----
>  lib/sched/rte_sched.c                         |  5 -----
>  lib/vhost/meson.build                         |  2 --
>  lib/vhost/vhost.h                             |  5 -----
>  30 files changed, 17 insertions(+), 100 deletions(-)
> 
> diff --git a/app/test-pmd/testpmd.h b/app/test-pmd/testpmd.h
> index 260e4761bd..9e6a7d553a 100644
> --- a/app/test-pmd/testpmd.h
> +++ b/app/test-pmd/testpmd.h
> @@ -1292,10 +1292,6 @@ RTE_INIT(__##c) \
>  	testpmd_add_driver_commands(&c); \
>  }
> 
> -/*
> - * Work-around of a compilation error with ICC on invocations of the
> - * rte_be_to_cpu_16() function.
> - */
>  #ifdef __GCC__
>  #define RTE_BE_TO_CPU_16(be_16_v)  rte_be_to_cpu_16((be_16_v))
>  #define RTE_CPU_TO_BE_16(cpu_16_v) rte_cpu_to_be_16((cpu_16_v))
> diff --git a/app/test/test_pie.c b/app/test/test_pie.c
> index 8036bac1e6..72ef3869d0 100644
> --- a/app/test/test_pie.c
> +++ b/app/test/test_pie.c
> @@ -41,11 +41,6 @@ test_pie_all(void)
> 
>  #include <rte_pie.h>
> 
> -#ifdef __INTEL_COMPILER
> -#pragma warning(disable:2259)       /* conversion may lose significant bits */
> -#pragma warning(disable:181)        /* Arg incompatible with format string */
> -#endif
> -
>  /**< structures for testing rte_pie performance and function */
>  struct test_rte_pie_config {        /**< Test structure for RTE_PIE config */
>  	struct rte_pie_config *pconfig; /**< RTE_PIE configuration parameters
> */
> diff --git a/app/test/test_red.c b/app/test/test_red.c
> index 6bf58ad4dd..7f38ed1469 100644
> --- a/app/test/test_red.c
> +++ b/app/test/test_red.c
> @@ -40,11 +40,6 @@ test_red_all(void)
> 
>  #include <rte_red.h>
> 
> -#ifdef __INTEL_COMPILER
> -#pragma warning(disable:2259)       /* conversion may lose significant bits */
> -#pragma warning(disable:181)        /* Arg incompatible with format string */
> -#endif
> -
>  #define TEST_HZ_PER_KHZ 1000
>  #define TEST_NSEC_MARGIN 500        /**< nanosecond margin when
> calculating clk freq */
> 
> diff --git a/buildtools/check-symbols.sh b/buildtools/check-symbols.sh
> index e458c0af72..b8ac24391e 100755
> --- a/buildtools/check-symbols.sh
> +++ b/buildtools/check-symbols.sh
> @@ -45,9 +45,8 @@ do
>  	fi
>  done
> 
> -# Filter out symbols suffixed with a . for icc
>  for SYM in `awk '{
> -	if ($2 != "l" && $4 == ".text.experimental" && !($NF ~ /\.$/)) {
> +	if ($2 != "l" && $4 == ".text.experimental") {
>  		print $NF
>  	}
>  }' $DUMPFILE`
> @@ -76,9 +75,8 @@ do
>  	fi
>  done
> 
> -# Filter out symbols suffixed with a . for icc
>  for SYM in `awk '{
> -	if ($2 != "l" && $4 == ".text.internal" && !($NF ~ /\.$/)) {
> +	if ($2 != "l" && $4 == ".text.internal") {
>  		print $NF
>  	}
>  }' $DUMPFILE`
> diff --git a/doc/guides/contributing/img/patch_cheatsheet.svg
> b/doc/guides/contributing/img/patch_cheatsheet.svg
> index 986e4db815..4debb07b98 100644
> --- a/doc/guides/contributing/img/patch_cheatsheet.svg
> +++ b/doc/guides/contributing/img/patch_cheatsheet.svg
> @@ -718,7 +718,7 @@
>               style="font-style:normal;font-variant:normal;font-weight:300;font-
> stretch:normal;font-size:21px;line-height:125%;font-family:monospace;-
> inkscape-font-specification:'Monospace Bold';text-align:start;writing-mode:lr-
> tb;text-anchor:start"
>               id="tspan4092-8-7"
>               y="454.36987"
> -             x="49.093246">+ build gcc icc clang </tspan></text>
> +             x="49.093246">+ build gcc clang </tspan></text>
>          <text
>             style="font-style:normal;font-weight:normal;font-size:40px;line-
> height:0%;font-family:sans-serif;letter-spacing:0px;word-
> spacing:0px;fill:#000000;fill-opacity:1;stroke:none"
>             xml:space="preserve"
> diff --git a/doc/guides/linux_gsg/sys_reqs.rst
> b/doc/guides/linux_gsg/sys_reqs.rst
> index 13d632cec7..5a7d9e4a43 100644
> --- a/doc/guides/linux_gsg/sys_reqs.rst
> +++ b/doc/guides/linux_gsg/sys_reqs.rst
> @@ -71,8 +71,7 @@ Compilation of the DPDK
> 
>  **Optional Tools:**
> 
> -*   Intel\ |reg| C++ Compiler (icc). For installation, additional libraries may be
> required.
> -    See the icc Installation Guide found in the Documentation directory under
> the compiler installation.
> +*   Intel\ |reg| oneAPI DPC++/C++ Compiler.
> 
>  *   IBM\ |reg| Advance ToolChain for Powerlinux. This is a set of open source
> development tools and runtime libraries
>      which allows users to take leading edge advantage of IBM's latest POWER
> hardware features on Linux. To install
> diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst
> index 6731ebe626..a400bbc4f7 100644
> --- a/doc/guides/nics/enic.rst
> +++ b/doc/guides/nics/enic.rst
> @@ -378,7 +378,7 @@ AVX2 SIMD instructions. It is meant for bulk,
> throughput oriented workloads
>  where reducing cycles/packet in PMD is a priority. In order to use the
>  vectorized handler, take the following steps.
> 
> -- Use a recent version of gcc, icc, or clang and build 64-bit DPDK. If
> +- Use a recent version of gcc or clang and build 64-bit DPDK. If
>    the compiler is known to support AVX2, DPDK build system
>    automatically compiles the vectorized handler. Otherwise, the
>    handler is not available.
> diff --git a/doc/guides/nics/hinic.rst b/doc/guides/nics/hinic.rst
> index 3610023122..c47737c714 100644
> --- a/doc/guides/nics/hinic.rst
> +++ b/doc/guides/nics/hinic.rst
> @@ -55,5 +55,4 @@ for details.
> 
>  Limitations or Known issues
>  ---------------------------
> -Build with ICC is not supported yet.
>  X86-32, Power8, ARMv7 and BSD are not supported yet.
> diff --git a/doc/guides/nics/hns3.rst b/doc/guides/nics/hns3.rst
> index a93b300895..1239c21604 100644
> --- a/doc/guides/nics/hns3.rst
> +++ b/doc/guides/nics/hns3.rst
> @@ -451,5 +451,4 @@ sve burst function. When enabling IEEE 1588, Rx/Tx
> burst mode should be
>  simple or common. It is recommended that enable IEEE 1588 before ethdev
>  start. In this way, the correct Rx/Tx burst function can be selected.
> 
> -Build with ICC is not supported yet.
>  X86-32, Power8, ARMv7 and BSD are not supported yet.
> diff --git a/doc/guides/nics/ngbe.rst b/doc/guides/nics/ngbe.rst
> index b002fa4c19..fe9fb1b07d 100644
> --- a/doc/guides/nics/ngbe.rst
> +++ b/doc/guides/nics/ngbe.rst
> @@ -81,5 +81,4 @@ for details.
>  Limitations or Known issues
>  ---------------------------
> 
> -Build with ICC is not supported yet.
>  Power8, ARMv7 and BSD are not supported yet.
> diff --git a/doc/guides/nics/txgbe.rst b/doc/guides/nics/txgbe.rst
> index e55b0e643a..93fb592759 100644
> --- a/doc/guides/nics/txgbe.rst
> +++ b/doc/guides/nics/txgbe.rst
> @@ -186,5 +186,4 @@ For a detailed usage description please refer to "Traffic
> Management" section in
>  Limitations or Known issues
>  ---------------------------
> 
> -Build with ICC is not supported yet.
>  Power8, ARMv7 and BSD are not supported yet.
> diff --git a/doc/guides/prog_guide/lto.rst b/doc/guides/prog_guide/lto.rst
> index ff9f47a8f4..5791e35494 100644
> --- a/doc/guides/prog_guide/lto.rst
> +++ b/doc/guides/prog_guide/lto.rst
> @@ -10,7 +10,7 @@ program" optimization at link time and is available only
> for compilers
>  that support that feature.
>  To be more specific, compiler (in addition to performing LTO) have to
>  support creation of ELF objects containing both normal code and internal
> -representation (called fat-lto-objects in gcc and icc).
> +representation (called fat-lto-objects in gcc).
>  This is required since during build some code is generated by parsing
>  produced ELF objects (pmdinfogen).
> 
> diff --git a/doc/guides/prog_guide/writing_efficient_code.rst
> b/doc/guides/prog_guide/writing_efficient_code.rst
> index b849f1db07..b63fa8e459 100644
> --- a/doc/guides/prog_guide/writing_efficient_code.rst
> +++ b/doc/guides/prog_guide/writing_efficient_code.rst
> @@ -247,7 +247,7 @@ However, this technique is not always efficient; it
> depends on many factors incl
>  Branch Prediction
>  ~~~~~~~~~~~~~~~~~
> 
> -The Intel® C/C++ Compiler (icc)/gcc built-in helper functions likely() and
> unlikely()
> +The gcc built-in helper functions likely() and unlikely()
>  allow the developer to indicate if a code branch is likely to be taken or not.
>  For instance:
> 
> diff --git a/doc/guides/rel_notes/known_issues.rst
> b/doc/guides/rel_notes/known_issues.rst
> index 899da771ab..73c72ba484 100644
> --- a/doc/guides/rel_notes/known_issues.rst
> +++ b/doc/guides/rel_notes/known_issues.rst
> @@ -422,25 +422,6 @@ Differences in how different Intel NICs handle
> maximum packet length for jumbo f
>     Poll Mode Driver (PMD).
> 
> 
> -GCC might generate Intel® AVX instructions for processors without Intel® AVX
> support
> -------------------------------------------------------------------------------------
> -
> -**Description**:
> -   When compiling DPDK (and any DPDK app), gcc may generate Intel® AVX
> instructions, even when the
> -   processor does not support Intel® AVX.
> -
> -**Implication**:
> -   Any DPDK app might crash while starting up.
> -
> -**Resolution/Workaround**:
> -   Either compile using icc or set ``EXTRA_CFLAGS='-O3'`` prior to compilation.
> -
> -**Affected Environment/Platform**:
> -   Platforms which processor does not support Intel® AVX.
> -
> -**Driver/Module**:
> -   Environment Abstraction Layer (EAL).
> -
>  Ethertype filter could receive other packets (non-assigned) in Niantic
>  ----------------------------------------------------------------------
> 
> diff --git a/doc/guides/rel_notes/release_25_03.rst
> b/doc/guides/rel_notes/release_25_03.rst
> index 269ab6f68a..da8e32c9ce 100644
> --- a/doc/guides/rel_notes/release_25_03.rst
> +++ b/doc/guides/rel_notes/release_25_03.rst
> @@ -106,6 +106,11 @@ Removed Items
>     Also, make sure to start the actual text at the margin.
>     =======================================================
> 
> +* **Support for Intel\ |reg| C++ Compiler (icc) (replaced by "icx" support)**
> +
> +  Support for the older Intel\ |reg| C++ Compiler "icc" has been dropped.
> +  The newer Intel\ |reg| oneAPI DPC++/C++ Compiler, "icx", can be used to
> compile DPDK instead.
> +
> 
>  API Changes
>  -----------
> diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
> index aea2e5c929..4c6af8285e 100644
> --- a/drivers/net/ena/ena_ethdev.c
> +++ b/drivers/net/ena/ena_ethdev.c
> @@ -1413,7 +1413,6 @@ static int ena_create_io_queue(struct rte_eth_dev
> *dev, struct ena_ring *ring)
>  	struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(dev);
>  	struct rte_intr_handle *intr_handle = pci_dev->intr_handle;
>  	struct ena_com_create_io_ctx ctx =
> -		/* policy set to _HOST just to satisfy icc compiler */
>  		{ ENA_ADMIN_PLACEMENT_POLICY_HOST,
>  		  0, 0, 0, 0, 0 };
>  	uint16_t ena_qid;
> diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h
> b/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h
> index fea0c0a7dc..42ebe09dd9 100644
> --- a/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h
> +++ b/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h
> @@ -25,7 +25,7 @@
>  #include "mlx5_rxtx_vec.h"
>  #include "mlx5_autoconf.h"
> 
> -#if !defined(__INTEL_COMPILER) && !defined(RTE_TOOLCHAIN_MSVC)
> +#if !defined(RTE_TOOLCHAIN_MSVC)
>  #pragma GCC diagnostic ignored "-Wstrict-aliasing"
>  #endif
> 
> diff --git a/drivers/net/virtio/meson.build b/drivers/net/virtio/meson.build
> index 02742da5c2..3a121fc5ee 100644
> --- a/drivers/net/virtio/meson.build
> +++ b/drivers/net/virtio/meson.build
> @@ -37,8 +37,6 @@ if arch_subdir == 'x86'
>              cflags += '-DVIRTIO_GCC_UNROLL_PRAGMA'
>          elif (toolchain == 'clang' and cc.version().version_compare('>=3.7.0'))
>              cflags += '-DVIRTIO_CLANG_UNROLL_PRAGMA'
> -        elif (toolchain == 'icc' and cc.version().version_compare('>=16.0.0'))
> -            cflags += '-DVIRTIO_ICC_UNROLL_PRAGMA'
>          endif
>      endif
>      sources += files('virtio_rxtx_simple_sse.c')
> diff --git a/drivers/net/virtio/virtio_rxtx_packed.h
> b/drivers/net/virtio/virtio_rxtx_packed.h
> index 536112983c..12bfcee809 100644
> --- a/drivers/net/virtio/virtio_rxtx_packed.h
> +++ b/drivers/net/virtio/virtio_rxtx_packed.h
> @@ -77,11 +77,6 @@
>  	for (iter = val; iter < size; iter++)
>  #endif
> 
> -#ifdef VIRTIO_ICC_UNROLL_PRAGMA
> -#define virtio_for_each_try_unroll(iter, val, size) _Pragma("unroll 4") \
> -	for (iter = val; iter < size; iter++)
> -#endif
> -
>  #ifndef virtio_for_each_try_unroll
>  #define virtio_for_each_try_unroll(iter, val, size) \
>  	for (iter = val; iter < size; iter++)
> diff --git a/dts/framework/config/__init__.py
> b/dts/framework/config/__init__.py
> index 6bf4885815..781c1ab831 100644
> --- a/dts/framework/config/__init__.py
> +++ b/dts/framework/config/__init__.py
> @@ -116,8 +116,6 @@ class Compiler(StrEnum):
>      #:
>      clang = auto()
>      #:
> -    icc = auto()
> -    #:
>      msvc = auto()
> 
> 
> diff --git a/dts/framework/testbed_model/posix_session.py
> b/dts/framework/testbed_model/posix_session.py
> index c0cca2ac50..101513b45e 100644
> --- a/dts/framework/testbed_model/posix_session.py
> +++ b/dts/framework/testbed_model/posix_session.py
> @@ -381,8 +381,6 @@ def get_compiler_version(self, compiler_name: str) ->
> str:
>                  ).stdout.split("\n")[0]
>              case "msvc":
>                  return self.send_command("cl", SETTINGS.timeout).stdout
> -            case "icc":
> -                return self.send_command(f"{compiler_name} -V",
> SETTINGS.timeout).stdout
>              case _:
>                  raise ValueError(f"Unknown compiler {compiler_name}")
> 
> diff --git a/lib/eal/common/eal_common_dynmem.c
> b/lib/eal/common/eal_common_dynmem.c
> index b4dc231940..3c34a7defb 100644
> --- a/lib/eal/common/eal_common_dynmem.c
> +++ b/lib/eal/common/eal_common_dynmem.c
> @@ -510,7 +510,6 @@ eal_dynmem_calc_num_pages_per_socket(
>  		/* if we didn't satisfy all memory requirements per socket */
>  		if (memory[socket] > 0 &&
>  				internal_conf->socket_mem[socket] != 0) {
> -			/* to prevent icc errors */
>  			requested = (unsigned int)(
>  				internal_conf->socket_mem[socket] /
> 0x100000);
>  			available = requested -
> diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h
> index 7a252c1997..3f77b7624e 100644
> --- a/lib/eal/include/rte_common.h
> +++ b/lib/eal/include/rte_common.h
> @@ -59,8 +59,6 @@ extern "C" {
>  #define RTE_CC_IS_GNU 0
>  #if defined __clang__
>  #define RTE_CC_CLANG
> -#elif defined __INTEL_COMPILER
> -#define RTE_CC_ICC
>  #elif defined __GNUC__
>  #define RTE_CC_GCC
>  #undef RTE_CC_IS_GNU
> @@ -160,7 +158,7 @@ typedef uint16_t unaligned_uint16_t;
>   * Macros to cause the compiler to remember the state of the diagnostics as
> of
>   * each push, and restore to that point at each pop.
>   */
> -#if !defined(__INTEL_COMPILER) && !defined(RTE_TOOLCHAIN_MSVC)
> +#if !defined(RTE_TOOLCHAIN_MSVC)
>  #define __rte_diagnostic_push _Pragma("GCC diagnostic push")
>  #define __rte_diagnostic_pop  _Pragma("GCC diagnostic pop")
>  #else
> @@ -172,7 +170,7 @@ typedef uint16_t unaligned_uint16_t;
>   * Macro to disable compiler warnings about removing a type
>   * qualifier from the target type.
>   */
> -#if !defined(__INTEL_COMPILER) && !defined(RTE_TOOLCHAIN_MSVC)
> +#if !defined(RTE_TOOLCHAIN_MSVC)
>  #define __rte_diagnostic_ignored_wcast_qual _Pragma("GCC diagnostic
> ignored \"-Wcast-qual\"")
>  #else
>  #define __rte_diagnostic_ignored_wcast_qual
> diff --git a/lib/eal/x86/include/rte_rtm.h b/lib/eal/x86/include/rte_rtm.h
> index b84e58e059..6689d036c8 100644
> --- a/lib/eal/x86/include/rte_rtm.h
> +++ b/lib/eal/x86/include/rte_rtm.h
> @@ -7,7 +7,7 @@
> 
>  #include <immintrin.h>
> 
> -/* Official RTM intrinsics interface matching gcc/icc, but works
> +/* Official RTM intrinsics interface matching gcc, but works
>     on older gcc compatible compilers and binutils. */
> 
>  #include <rte_common.h>
> diff --git a/lib/eal/x86/include/rte_vect.h b/lib/eal/x86/include/rte_vect.h
> index 5fdcd632ac..70c78e9b77 100644
> --- a/lib/eal/x86/include/rte_vect.h
> +++ b/lib/eal/x86/include/rte_vect.h
> @@ -17,7 +17,7 @@
>  #include <rte_common.h>
>  #include "generic/rte_vect.h"
> 
> -#if defined(__ICC) || defined(_WIN64)
> +#if defined(_WIN64)
>  #include <smmintrin.h> /* SSE4 */
>  #include <immintrin.h>
>  #else
> @@ -74,19 +74,6 @@ __extension__ ({                \
>  })
>  #endif
> 
> -/*
> - * Prior to version 12.1 icc doesn't support _mm_set_epi64x.
> - */
> -#if (defined(__ICC) && __ICC < 1210)
> -#define _mm_set_epi64x(a, b)     \
> -__extension__ ({                 \
> -	rte_xmm_t m;             \
> -	m.u64[0] = b;            \
> -	m.u64[1] = a;            \
> -	(m.x);                   \
> -})
> -#endif /* (defined(__ICC) && __ICC < 1210) */
> -
>  #ifdef __AVX512F__
> 
>  #define RTE_X86_ZMM_SIZE	(sizeof(__m512i))
> diff --git a/lib/sched/rte_pie.c b/lib/sched/rte_pie.c
> index 2eb0b0f74e..a9f650e60f 100644
> --- a/lib/sched/rte_pie.c
> +++ b/lib/sched/rte_pie.c
> @@ -9,10 +9,6 @@
>  #include "rte_sched_log.h"
>  #include "rte_pie.h"
> 
> -#ifdef __INTEL_COMPILER
> -#pragma warning(disable:2259) /* conversion may lose significant bits */
> -#endif
> -
>  int
>  rte_pie_rt_data_init(struct rte_pie *pie)
>  {
> diff --git a/lib/sched/rte_red.c b/lib/sched/rte_red.c
> index 45a452f68e..fa27a141ed 100644
> --- a/lib/sched/rte_red.c
> +++ b/lib/sched/rte_red.c
> @@ -7,10 +7,6 @@
>  #include <rte_random.h>
>  #include <rte_common.h>
> 
> -#ifdef __INTEL_COMPILER
> -#pragma warning(disable:2259) /* conversion may lose significant bits */
> -#endif
> -
>  static int rte_red_init_done = 0;     /**< Flag to indicate that global initialisation
> is done */
>  uint32_t rte_red_rand_val = 0;        /**< Random value cache */
>  uint32_t rte_red_rand_seed = 0;       /**< Seed for random number generation
> */
> diff --git a/lib/sched/rte_sched.c b/lib/sched/rte_sched.c
> index bbdb5d1d86..d8ee4e7e91 100644
> --- a/lib/sched/rte_sched.c
> +++ b/lib/sched/rte_sched.c
> @@ -22,11 +22,6 @@
> 
>  #include "rte_approx.h"
> 
> -
> -#ifdef __INTEL_COMPILER
> -#pragma warning(disable:2259) /* conversion may lose significant bits */
> -#endif
> -
>  #ifndef RTE_SCHED_PORT_N_GRINDERS
>  #define RTE_SCHED_PORT_N_GRINDERS 8
>  #endif
> diff --git a/lib/vhost/meson.build b/lib/vhost/meson.build
> index 51bcf17244..2eec51b2e7 100644
> --- a/lib/vhost/meson.build
> +++ b/lib/vhost/meson.build
> @@ -12,8 +12,6 @@ if (toolchain == 'gcc' and
> cc.version().version_compare('>=8.3.0'))
>      cflags += '-DVHOST_GCC_UNROLL_PRAGMA'
>  elif (toolchain == 'clang' and cc.version().version_compare('>=3.7.0'))
>      cflags += '-DVHOST_CLANG_UNROLL_PRAGMA'
> -elif (toolchain == 'icc' and cc.version().version_compare('>=16.0.0'))
> -    cflags += '-DVHOST_ICC_UNROLL_PRAGMA'
>  endif
>  dpdk_conf.set('RTE_LIBRTE_VHOST_POSTCOPY',
> cc.has_header('linux/userfaultfd.h'))
>  cflags += [
> diff --git a/lib/vhost/vhost.h b/lib/vhost/vhost.h
> index 1f4192f5d1..63d2aa9502 100644
> --- a/lib/vhost/vhost.h
> +++ b/lib/vhost/vhost.h
> @@ -79,11 +79,6 @@
>  	for (iter = val; iter < size; iter++)
>  #endif
> 
> -#ifdef VHOST_ICC_UNROLL_PRAGMA
> -#define vhost_for_each_try_unroll(iter, val, size) _Pragma("unroll (4)") \
> -	for (iter = val; iter < size; iter++)
> -#endif
> -
>  #ifndef vhost_for_each_try_unroll
>  #define vhost_for_each_try_unroll(iter, val, num) \
>  	for (iter = val; iter < num; iter++)
> --
> 2.43.0

Seems good to me. I saw David has some separate feedback but I don’t have any significant changes for a v3.

Acked-by: Ian Stokes <ian.stokes@intel.com>


  parent reply	other threads:[~2025-02-10 10:56 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-05 16:18 [PATCH] build: remove support for icc compiler Bruce Richardson
2025-02-05 16:33 ` Stephen Hemminger
2025-02-05 17:03 ` David Marchand
2025-02-05 17:32   ` Bruce Richardson
2025-02-05 17:46     ` Bruce Richardson
2025-02-05 18:29 ` [PATCH v2 0/2] replace icc support with icx Bruce Richardson
2025-02-05 18:29   ` [PATCH v2 1/2] drivers: fix build warnings when using icx Bruce Richardson
2025-02-10 10:55     ` Stokes, Ian
2025-02-05 18:29   ` [PATCH v2 2/2] build: replace support for icc with icx Bruce Richardson
2025-02-06 15:19     ` David Marchand
2025-02-10 10:55     ` Stokes, Ian [this message]
2025-02-10 17:18 ` [PATCH v3] " Bruce Richardson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=MW6PR11MB8309C6F70BD227906FA1938C92F22@MW6PR11MB8309.namprd11.prod.outlook.com \
    --to=ian.stokes@intel.com \
    --cc=aman.deep.singh@intel.com \
    --cc=amitbern@amazon.com \
    --cc=anatoly.burakov@intel.com \
    --cc=atrwajee@amazon.com \
    --cc=bingz@nvidia.com \
    --cc=bruce.richardson@intel.com \
    --cc=chenbox@nvidia.com \
    --cc=cloud.wangxiaoyun@huawei.com \
    --cc=cristian.dumitrescu@intel.com \
    --cc=dev@dpdk.org \
    --cc=drc@linux.ibm.com \
    --cc=dsosnowski@nvidia.com \
    --cc=evgenys@amazon.com \
    --cc=haijie1@huawei.com \
    --cc=hyonkim@cisco.com \
    --cc=jianwang@trustnetic.com \
    --cc=jiawenwu@trustnetic.com \
    --cc=john.mcnamara@intel.com \
    --cc=johndale@cisco.com \
    --cc=konstantin.v.ananyev@yandex.ru \
    --cc=matan@nvidia.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=orika@nvidia.com \
    --cc=paul.szczepanek@arm.com \
    --cc=probb@iol.unh.edu \
    --cc=rbeider@amazon.com \
    --cc=roretzla@linux.microsoft.com \
    --cc=shaibran@amazon.com \
    --cc=stephen@networkplumber.org \
    --cc=suanmingm@nvidia.com \
    --cc=viacheslavo@nvidia.com \
    --cc=xuanziyang2@huawei.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).