From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by dpdk.org (Postfix) with ESMTP id A8E3E1B438 for ; Wed, 12 Dec 2018 19:17:51 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 12 Dec 2018 10:17:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,345,1539673200"; d="scan'208";a="100186014" Received: from fyigit-mobl.ger.corp.intel.com (HELO [10.237.221.46]) ([10.237.221.46]) by orsmga006.jf.intel.com with ESMTP; 12 Dec 2018 10:17:49 -0800 From: Ferruh Yigit To: Wenzhuo Lu , dev@dpdk.org Cc: Qiming Yang , Xiaoyun Li , Jingjing Wu References: <1542956179-80951-1-git-send-email-wenzhuo.lu@intel.com> <1544598004-27099-1-git-send-email-wenzhuo.lu@intel.com> <1544598004-27099-17-git-send-email-wenzhuo.lu@intel.com> Openpgp: preference=signencrypt Autocrypt: addr=ferruh.yigit@intel.com; prefer-encrypt=mutual; keydata= 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 vM8= Message-ID: Date: Wed, 12 Dec 2018 18:17:48 +0000 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.3.3 MIME-Version: 1.0 In-Reply-To: <1544598004-27099-17-git-send-email-wenzhuo.lu@intel.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH v3 16/34] net/ice: support device initialization 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: , X-List-Received-Date: Wed, 12 Dec 2018 18:17:52 -0000 On 12/12/2018 6:59 AM, Wenzhuo Lu wrote: > Signed-off-by: Wenzhuo Lu > Signed-off-by: Qiming Yang > Signed-off-by: Xiaoyun Li > Signed-off-by: Jingjing Wu <...> > @@ -297,6 +297,15 @@ CONFIG_RTE_LIBRTE_FM10K_RX_OLFLAGS_ENABLE=y > CONFIG_RTE_LIBRTE_FM10K_INC_VECTOR=y > > # > +# Compile burst-oriented ICE PMD driver > +# > +CONFIG_RTE_LIBRTE_ICE_PMD=y > +CONFIG_RTE_LIBRTE_ICE_DEBUG_RX=n > +CONFIG_RTE_LIBRTE_ICE_DEBUG_TX=n > +CONFIG_RTE_LIBRTE_ICE_DEBUG_TX_FREE=n > +CONFIG_RTE_LIBRTE_ICE_RX_ALLOW_BULK_ALLOC=y Is there a way to convert this into runtime config? Does it needs to be compile time config? > +CONFIG_RTE_LIBRTE_ICE_16BYTE_RX_DESC=n Some of these config options documented in ice.rst, but document is introduced as last patch, what do you think adding documentation as the feature added? <...> > +# > +# Add extra flags for base driver files (also known as shared code) > +# to disable warnings > +# > +ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y) > +CFLAGS_BASE_DRIVER = -wd593 -wd188 > +else ifeq ($(CONFIG_RTE_TOOLCHAIN_CLANG),y) > +CFLAGS_BASE_DRIVER += -Wno-sign-compare > +CFLAGS_BASE_DRIVER += -Wno-unused-value > +CFLAGS_BASE_DRIVER += -Wno-unused-parameter > +CFLAGS_BASE_DRIVER += -Wno-strict-aliasing > +CFLAGS_BASE_DRIVER += -Wno-format > +CFLAGS_BASE_DRIVER += -Wno-missing-field-initializers > +CFLAGS_BASE_DRIVER += -Wno-pointer-to-int-cast > +CFLAGS_BASE_DRIVER += -Wno-format-nonliteral > +CFLAGS_BASE_DRIVER += -Wno-unused-variable > +else > +CFLAGS_BASE_DRIVER = -Wno-sign-compare > +CFLAGS_BASE_DRIVER += -Wno-unused-value > +CFLAGS_BASE_DRIVER += -Wno-unused-parameter > +CFLAGS_BASE_DRIVER += -Wno-strict-aliasing > +CFLAGS_BASE_DRIVER += -Wno-format > +CFLAGS_BASE_DRIVER += -Wno-missing-field-initializers > +CFLAGS_BASE_DRIVER += -Wno-pointer-to-int-cast > +CFLAGS_BASE_DRIVER += -Wno-format-nonliteral > +CFLAGS_BASE_DRIVER += -Wno-format-security > +CFLAGS_BASE_DRIVER += -Wno-unused-variable > + > +ifeq ($(shell test $(GCC_VERSION) -ge 44 && echo 1), 1) > +CFLAGS_BASE_DRIVER += -Wno-unused-but-set-variable > +endif Are all these special warning disable cases for ice? It looks like can be copy paste from all driver, I suggest starting from empty exception list, we can add them if we need but lets not start with existing list already. <...> > +# this lib depends upon: > +DEPDIRS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += lib/librte_eal lib/librte_ether > +DEPDIRS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += lib/librte_mempool lib/librte_mbuf > +DEPDIRS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += lib/librte_net > +DEPDIRS-$(CONFIG_RTE_LIBRTE_ICE_PMD) += lib/librte_kvargs As far as I remember we removed DEPDIRS from makefiles, there is no more dynamic dependency resolving, so it should be safe to remove above lines. > + > +include $(RTE_SDK)/mk/rte.lib.mk > diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c > new file mode 100644 > index 0000000..e0bf15c > --- /dev/null > +++ b/drivers/net/ice/ice_ethdev.c > @@ -0,0 +1,640 @@ > +/* SPDX-License-Identifier: BSD-3-Clause > + * Copyright(c) 2018 Intel Corporation > + */ > + > +#include > + > +#include "base/ice_sched.h" > +#include "ice_ethdev.h" > +#include "ice_rxtx.h" > + > +#define ICE_MAX_QP_NUM "max_queue_pair_num" When documentation is added into this patch, can you also add this runtime config to that please? <...> > +static int > +ice_dev_init(struct rte_eth_dev *dev) > +{ > + struct rte_pci_device *pci_dev; > + struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data->dev_private); > + struct ice_pf *pf = ICE_DEV_PRIVATE_TO_PF(dev->data->dev_private); > + int ret; > + > + dev->dev_ops = &ice_eth_dev_ops; > + > + pci_dev = RTE_DEV_TO_PCI(dev->device); > + > + rte_eth_copy_pci_info(dev, pci_dev); This is done by rte_eth_dev_pci_generic_probe(), do we need here? <...> > +RTE_INIT(ice_init_log); > +static void > +ice_init_log(void) Can merge these lines, please check other samples. > +{ > + ice_logtype_init = rte_log_register("pmd.ice.init"); pmd.net.ice.init > + if (ice_logtype_init >= 0) > + rte_log_set_level(ice_logtype_init, RTE_LOG_NOTICE); > + ice_logtype_driver = rte_log_register("pmd.ice.driver"); pmd.net.ice.driver <...> > +static void > +ice_dev_close(struct rte_eth_dev *dev) > +{ > + struct ice_pf *pf = ICE_DEV_PRIVATE_TO_PF(dev->data->dev_private); > + struct ice_hw *hw = ICE_DEV_PRIVATE_TO_HW(dev->data->dev_private); > + > + ice_res_pool_destroy(&pf->msix_pool); > + ice_release_vsi(pf->main_vsi); > + > + ice_shutdown_all_ctrlq(hw); > +} I am mostly for ordering functions in a way that it doesn't require the forward declaration, which is mostly helps reading the code since the function order is close the call order. It is up to you but also for sake of consistancy I think better to move this function up, and leave probe/remove/init_log functions as last functions in file. <...> > +#define ICE_FLAG_ALL (ICE_FLAG_RSS | \ > + ICE_FLAG_DCB | \ > + ICE_FLAG_VMDQ | \ > + ICE_FLAG_SRIOV | \ > + ICE_FLAG_HEADER_SPLIT_DISABLED | \ > + ICE_FLAG_HEADER_SPLIT_ENABLED | \ > + ICE_FLAG_FDIR | \ > + ICE_FLAG_VXLAN | \ > + ICE_FLAG_RSS_AQ_CAPABLE | \ > + ICE_FLAG_VF_MAC_BY_PF) > + > +#define ICE_RSS_OFFLOAD_ALL ( \ > + ETH_RSS_FRAG_IPV4 | \ > + ETH_RSS_NONFRAG_IPV4_TCP | \ > + ETH_RSS_NONFRAG_IPV4_UDP | \ > + ETH_RSS_NONFRAG_IPV4_SCTP | \ > + ETH_RSS_NONFRAG_IPV4_OTHER | \ > + ETH_RSS_FRAG_IPV6 | \ > + ETH_RSS_NONFRAG_IPV6_TCP | \ > + ETH_RSS_NONFRAG_IPV6_UDP | \ > + ETH_RSS_NONFRAG_IPV6_SCTP | \ > + ETH_RSS_NONFRAG_IPV6_OTHER | \ > + ETH_RSS_L2_PAYLOAD) ICE_RSS_OFFLOAD_ALL is not used at all until this patchset. I think it makes more logical to add code when it is added, otherwise it is hard to have a complete logic in signle patch and harder to observe any possible issue. What do you think re-arranging them?