From patchwork Sat Dec 5 01:10:19 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Kadam, Pallavi" X-Patchwork-Id: 84770 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 863E1A09E4; Sat, 5 Dec 2020 02:21:49 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0E3B9C8DA; Sat, 5 Dec 2020 02:21:15 +0100 (CET) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by dpdk.org (Postfix) with ESMTP id 7168C2E81 for ; Sat, 5 Dec 2020 02:21:10 +0100 (CET) IronPort-SDR: 6Pd91LHiJRBwxKjznuVvWE6fQ8/zl46PFkmm4NZmkDAFq46Y24zg6S0qyno+vazI0lGIIxFcKH hunbkqj9GQsQ== X-IronPort-AV: E=McAfee;i="6000,8403,9825"; a="160530095" X-IronPort-AV: E=Sophos;i="5.78,394,1599548400"; d="scan'208";a="160530095" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 04 Dec 2020 17:20:58 -0800 IronPort-SDR: BuWE5GUOq2AbJQCk3Vb3mXJarHoFRn6xP5Sa0u8wkglhoZzRYvl21JcIXmmS3i3YEUHH2P2miL P1fkM08KTzQg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,394,1599548400"; d="scan'208";a="317133380" Received: from win-dpdk-pallavi.jf.intel.com (HELO localhost.localdomain) ([10.166.188.111]) by fmsmga007.fm.intel.com with ESMTP; 04 Dec 2020 17:20:58 -0800 From: Pallavi Kadam To: dev@dpdk.org, thomas@monjalon.net Cc: ranjit.menon@intel.com, dmitry.kozliuk@gmail.com, Narcisa.Vasile@microsoft.com, talshn@nvidia.com, ferruh.yigit@intel.com, beilei.xing@intel.com, jia.guo@intel.com, pallavi.kadam@intel.com Date: Fri, 4 Dec 2020 17:10:19 -0800 Message-Id: <20201205011020.6276-3-pallavi.kadam@intel.com> X-Mailer: git-send-email 2.18.0.windows.1 In-Reply-To: <20201205011020.6276-1-pallavi.kadam@intel.com> References: <20201205011020.6276-1-pallavi.kadam@intel.com> Subject: [dpdk-dev] [PATCH 2/3] net/i40e: add changes to support i40e PMD on windows 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" Adding build changes to compile i40e PMD on windows. Disabling few warnings with Clang such as comparison of integers of different signs and macro redefinitions. Also, adding linking dependency source file rte_random.c file to Windows. Signed-off-by: Pallavi Kadam Reviewed-by: Ranjit Menon --- drivers/net/i40e/base/i40e_osdep.h | 3 +++ drivers/net/i40e/i40e_ethdev_vf.c | 3 ++- drivers/net/i40e/i40e_rxtx_vec_avx2.c | 2 ++ drivers/net/i40e/i40e_tm.c | 2 +- drivers/net/meson.build | 9 ++++++--- lib/librte_eal/common/meson.build | 1 + lib/librte_eal/rte_eal_exports.def | 1 + lib/librte_eal/windows/include/rte_windows.h | 5 +++++ 8 files changed, 21 insertions(+), 5 deletions(-) diff --git a/drivers/net/i40e/base/i40e_osdep.h b/drivers/net/i40e/base/i40e_osdep.h index 9b5033024..fa22df122 100644 --- a/drivers/net/i40e/base/i40e_osdep.h +++ b/drivers/net/i40e/base/i40e_osdep.h @@ -67,8 +67,11 @@ typedef enum i40e_status_code i40e_status; #define false 0 #define true 1 +/* Avoid macro redifinition warning on Windows */ +#ifndef RTE_EXEC_ENV_WINDOWS #define min(a,b) RTE_MIN(a,b) #define max(a,b) RTE_MAX(a,b) +#endif #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f)) diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index c26b036b8..daf4a3f99 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -1495,7 +1495,8 @@ i40evf_handle_aq_msg(struct rte_eth_dev *dev) info.msg_len); else { /* read message and it's expected one */ - if (msg_opc == vf->pend_cmd) { + if ((volatile uint32_t)msg_opc == + vf->pend_cmd) { vf->cmd_retval = msg_ret; /* prevent compiler reordering */ rte_compiler_barrier(); diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c index 7a558fc73..cf2dc88c5 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c +++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c @@ -12,7 +12,9 @@ #include "i40e_rxtx.h" #include "i40e_rxtx_vec_common.h" +#ifndef RTE_EXEC_ENV_WINDOWS #include +#endif #ifndef __INTEL_COMPILER #pragma GCC diagnostic ignored "-Wcast-qual" diff --git a/drivers/net/i40e/i40e_tm.c b/drivers/net/i40e/i40e_tm.c index 5d722f92c..cab296e1a 100644 --- a/drivers/net/i40e/i40e_tm.c +++ b/drivers/net/i40e/i40e_tm.c @@ -554,7 +554,7 @@ i40e_node_add(struct rte_eth_dev *dev, uint32_t node_id, } /* check level */ if (level_id != RTE_TM_NODE_LEVEL_ID_ANY && - level_id != parent_node_type + 1) { + level_id != (uint32_t)parent_node_type + 1) { error->type = RTE_TM_ERROR_TYPE_NODE_PARAMS; error->message = "Wrong level"; return -EINVAL; diff --git a/drivers/net/meson.build b/drivers/net/meson.build index 29f477750..b3bc0277e 100644 --- a/drivers/net/meson.build +++ b/drivers/net/meson.build @@ -1,9 +1,6 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation -if is_windows - subdir_done() -endif drivers = ['af_packet', 'af_xdp', @@ -56,6 +53,12 @@ drivers = ['af_packet', 'virtio', 'vmxnet3', ] + +if is_windows + drivers = ['i40e', + ] +endif + std_deps = ['ethdev', 'kvargs'] # 'ethdev' also pulls in mbuf, net, eal etc std_deps += ['bus_pci'] # very many PMDs depend on PCI, so make std std_deps += ['bus_vdev'] # same with vdev bus diff --git a/lib/librte_eal/common/meson.build b/lib/librte_eal/common/meson.build index 39abf7a0a..98e8fffd4 100644 --- a/lib/librte_eal/common/meson.build +++ b/lib/librte_eal/common/meson.build @@ -33,6 +33,7 @@ if is_windows 'malloc_heap.c', 'rte_malloc.c', 'eal_common_timer.c', + 'rte_random.c', 'rte_service.c', ) subdir_done() diff --git a/lib/librte_eal/rte_eal_exports.def b/lib/librte_eal/rte_eal_exports.def index 89166acd7..428201872 100644 --- a/lib/librte_eal/rte_eal_exports.def +++ b/lib/librte_eal/rte_eal_exports.def @@ -124,6 +124,7 @@ EXPORTS rte_memzone_reserve_bounded rte_memzone_walk rte_openlog_stream + rte_rand rte_realloc rte_rtm_supported rte_service_attr_get diff --git a/lib/librte_eal/windows/include/rte_windows.h b/lib/librte_eal/windows/include/rte_windows.h index b82af34f6..822922c11 100644 --- a/lib/librte_eal/windows/include/rte_windows.h +++ b/lib/librte_eal/windows/include/rte_windows.h @@ -18,6 +18,11 @@ #define WIN32_LEAN_AND_MEAN #endif +#ifdef __clang__ +#undef _m_prefetchw +#define _m_prefetchw __m_prefetchw +#endif + /* Must come first. */ #include