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 F26CFA04B5; Wed, 9 Sep 2020 19:50:48 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D03401BF8E; Wed, 9 Sep 2020 19:50:48 +0200 (CEST) Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id EE2352BA8 for ; Wed, 9 Sep 2020 19:50:46 +0200 (CEST) IronPort-SDR: q9uCKAFjN8hULJpWRlsFF3RQX6cw+b7MKWWSbSbJKcxrjPGjICiiHj7fMbLRKgVxpcYnquyLTt oYFQ9U0grPTQ== X-IronPort-AV: E=McAfee;i="6000,8403,9739"; a="222588468" X-IronPort-AV: E=Sophos;i="5.76,409,1592895600"; d="scan'208";a="222588468" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Sep 2020 10:50:45 -0700 IronPort-SDR: FCFGjqDAn19vKKNIFDAe5B7z4K+j2KmFwi0/lPljUCOqw/H5f1kKnyKYosODhHeWUzsQwWq+BN DGZ780gXFYnw== X-IronPort-AV: E=Sophos;i="5.76,409,1592895600"; d="scan'208";a="480555659" Received: from fyigit-mobl.ger.corp.intel.com (HELO [10.213.245.241]) ([10.213.245.241]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 09 Sep 2020 10:50:44 -0700 To: Jiawen Wu , dev@dpdk.org References: <20200901115113.1529675-1-jiawenwu@trustnetic.com> <20200901115113.1529675-2-jiawenwu@trustnetic.com> From: Ferruh Yigit Autocrypt: addr=ferruh.yigit@intel.com; prefer-encrypt=mutual; keydata= mQINBFXZCFABEADCujshBOAaqPZpwShdkzkyGpJ15lmxiSr3jVMqOtQS/sB3FYLT0/d3+bvy qbL9YnlbPyRvZfnP3pXiKwkRoR1RJwEo2BOf6hxdzTmLRtGtwWzI9MwrUPj6n/ldiD58VAGQ +iR1I/z9UBUN/ZMksElA2D7Jgg7vZ78iKwNnd+vLBD6I61kVrZ45Vjo3r+pPOByUBXOUlxp9 GWEKKIrJ4eogqkVNSixN16VYK7xR+5OUkBYUO+sE6etSxCr7BahMPKxH+XPlZZjKrxciaWQb +dElz3Ab4Opl+ZT/bK2huX+W+NJBEBVzjTkhjSTjcyRdxvS1gwWRuXqAml/sh+KQjPV1PPHF YK5LcqLkle+OKTCa82OvUb7cr+ALxATIZXQkgmn+zFT8UzSS3aiBBohg3BtbTIWy51jNlYdy ezUZ4UxKSsFuUTPt+JjHQBvF7WKbmNGS3fCid5Iag4tWOfZoqiCNzxApkVugltxoc6rG2TyX CmI2rP0mQ0GOsGXA3+3c1MCdQFzdIn/5tLBZyKy4F54UFo35eOX8/g7OaE+xrgY/4bZjpxC1 1pd66AAtKb3aNXpHvIfkVV6NYloo52H+FUE5ZDPNCGD0/btFGPWmWRmkPybzColTy7fmPaGz cBcEEqHK4T0aY4UJmE7Ylvg255Kz7s6wGZe6IR3N0cKNv++O7QARAQABtCVGZXJydWggWWln aXQgPGZlcnJ1aC55aWdpdEBpbnRlbC5jb20+iQJsBBMBCgBWAhsDAh4BAheABQsJCAcDBRUK CQgLBRYCAwEABQkKqZZ8FiEE0jZTh0IuwoTjmYHH+TPrQ98TYR8FAl6ha3sXGHZrczovL2tl eXMub3BlbnBncC5vcmcACgkQ+TPrQ98TYR8uLA//QwltuFliUWe60xwmu9sY38c1DXvX67wk UryQ1WijVdIoj4H8cf/s2KtyIBjc89R254KMEfJDao/LrXqJ69KyGKXFhFPlF3VmFLsN4XiT PSfxkx8s6kHVaB3O183p4xAqnnl/ql8nJ5ph9HuwdL8CyO5/7dC/MjZ/mc4NGq5O9zk3YRGO lvdZAp5HW9VKW4iynvy7rl3tKyEqaAE62MbGyfJDH3C/nV/4+mPc8Av5rRH2hV+DBQourwuC ci6noiDP6GCNQqTh1FHYvXaN4GPMHD9DX6LtT8Fc5mL/V9i9kEVikPohlI0WJqhE+vQHFzR2 1q5nznE+pweYsBi3LXIMYpmha9oJh03dJOdKAEhkfBr6n8BWkWQMMiwfdzg20JX0o7a/iF8H 4dshBs+dXdIKzPfJhMjHxLDFNPNH8zRQkB02JceY9ESEah3wAbzTwz+e/9qQ5OyDTQjKkVOo cxC2U7CqeNt0JZi0tmuzIWrfxjAUulVhBmnceqyMOzGpSCQIkvalb6+eXsC9V1DZ4zsHZ2Mx Hi+7pCksdraXUhKdg5bOVCt8XFmx1MX4AoV3GWy6mZ4eMMvJN2hjXcrreQgG25BdCdcxKgqp e9cMbCtF+RZax8U6LkAWueJJ1QXrav1Jk5SnG8/5xANQoBQKGz+yFiWcgEs9Tpxth15o2v59 gXK5Ag0EV9ZMvgEQAKc0Db17xNqtSwEvmfp4tkddwW9XA0tWWKtY4KUdd/jijYqc3fDD54ES YpV8QWj0xK4YM0dLxnDU2IYxjEshSB1TqAatVWz9WtBYvzalsyTqMKP3w34FciuL7orXP4Ai bPtrHuIXWQOBECcVZTTOdZYGAzaYzxiAONzF9eTiwIqe9/oaOjTwTLnOarHt16QApTYQSnxD UQljeNvKYt1lZE/gAUUxNLWsYyTT+22/vU0GDUahsJxs1+f1yEr+OGrFiEAmqrzpF0lCS3f/ 3HVTU6rS9cK3glVUeaTF4+1SK5ZNO35piVQCwphmxa+dwTG/DvvHYCtgOZorTJ+OHfvCnSVj sM4kcXGjJPy3JZmUtyL9UxEbYlrffGPQI3gLXIGD5AN5XdAXFCjjaID/KR1c9RHd7Oaw0Pdc q9UtMLgM1vdX8RlDuMGPrj5sQrRVbgYHfVU/TQCk1C9KhzOwg4Ap2T3tE1umY/DqrXQgsgH7 1PXFucVjOyHMYXXugLT8YQ0gcBPHy9mZqw5mgOI5lCl6d4uCcUT0l/OEtPG/rA1lxz8ctdFB VOQOxCvwRG2QCgcJ/UTn5vlivul+cThi6ERPvjqjblLncQtRg8izj2qgmwQkvfj+h7Ex88bI 8iWtu5+I3K3LmNz/UxHBSWEmUnkg4fJlRr7oItHsZ0ia6wWQ8lQnABEBAAGJAjwEGAEKACYC GwwWIQTSNlOHQi7ChOOZgcf5M+tD3xNhHwUCXqFrngUJCKxSYAAKCRD5M+tD3xNhH3YWD/9b cUiWaHJasX+OpiuZ1Li5GG3m9aw4lR/k2lET0UPRer2Jy1JsL+uqzdkxGvPqzFTBXgx/6Byz EMa2mt6R9BCyR286s3lxVS5Bgr5JGB3EkpPcoJT3A7QOYMV95jBiiJTy78Qdzi5LrIu4tW6H o0MWUjpjdbR01cnj6EagKrDx9kAsqQTfvz4ff5JIFyKSKEHQMaz1YGHyCWhsTwqONhs0G7V2 0taQS1bGiaWND0dIBJ/u0pU998XZhmMzn765H+/MqXsyDXwoHv1rcaX/kcZIcN3sLUVcbdxA WHXOktGTQemQfEpCNuf2jeeJlp8sHmAQmV3dLS1R49h0q7hH4qOPEIvXjQebJGs5W7s2vxbA 5u5nLujmMkkfg1XHsds0u7Zdp2n200VC4GQf8vsUp6CSMgjedHeF9zKv1W4lYXpHp576ZV7T GgsEsvveAE1xvHnpV9d7ZehPuZfYlP4qgo2iutA1c0AXZLn5LPcDBgZ+KQZTzm05RU1gkx7n gL9CdTzVrYFy7Y5R+TrE9HFUnsaXaGsJwOB/emByGPQEKrupz8CZFi9pkqPuAPwjN6Wonokv ChAewHXPUadcJmCTj78Oeg9uXR6yjpxyFjx3vdijQIYgi5TEGpeTQBymLANOYxYWYOjXk+ae dYuOYKR9nbPv+2zK9pwwQ2NXbUBystaGyQ== Message-ID: <69e400d3-95f3-039e-212e-c659b3135f64@intel.com> Date: Wed, 9 Sep 2020 18:50:41 +0100 MIME-Version: 1.0 In-Reply-To: <20200901115113.1529675-2-jiawenwu@trustnetic.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH v1 02/42] net/txgbe: add ethdev probe and remove 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 9/1/2020 12:50 PM, Jiawen Wu wrote: > add basic PCIe ethdev probe and remove. > > Signed-off-by: Jiawen Wu <...> > +++ b/drivers/net/txgbe/base/meson.build > @@ -0,0 +1,21 @@ > +# SPDX-License-Identifier: BSD-3-Clause > +# Copyright(c) 2015-2020 > + > +sources = [ > + > +] > + > +error_cflags = ['-Wno-unused-value', > + '-Wno-unused-parameter', > + '-Wno-unused-but-set-variable'] Why these warnings are disabled, can't they fixed in the code? Can you please remove them? <...> > --- a/drivers/net/txgbe/txgbe_ethdev.c > +++ b/drivers/net/txgbe/txgbe_ethdev.c > @@ -2,3 +2,164 @@ > * Copyright(c) 2015-2020 > */ > > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > + > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include > +#include Are all these headers needed at this stage? Can they be added as they needed? <...> > +static int > +eth_txgbe_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, > + struct rte_pci_device *pci_dev) > +{ > + char name[RTE_ETH_NAME_MAX_LEN]; > + struct rte_eth_dev *pf_ethdev; > + struct rte_eth_devargs eth_da; > + int i, retval; > + > + if (pci_dev->device.devargs) { > + retval = rte_eth_devargs_parse(pci_dev->device.devargs->args, > + ð_da); > + if (retval) > + return retval; > + } else > + memset(ð_da, 0, sizeof(eth_da)); > + > + retval = rte_eth_dev_create(&pci_dev->device, pci_dev->device.name, > + sizeof(struct txgbe_adapter), > + eth_dev_pci_specific_init, pci_dev, > + eth_txgbe_dev_init, NULL); Better to indent with double tab to diffrenciate line continuation. <...> > + > + if (retval) > + PMD_DRV_LOG(ERR, "failed to create txgbe vf " > + "representor %s.", name); You can join the splitted log message. PMD_DRV_LOG(ERR, "failed to create txgbe vf representor %s.", name) > + } > + > + return 0; > +} > + > +static int eth_txgbe_pci_remove(struct rte_pci_device *pci_dev) > +{ > + struct rte_eth_dev *ethdev; > + > + ethdev = rte_eth_dev_allocated(pci_dev->device.name); > + if (!ethdev) > + return -ENODEV; > + > + if (ethdev->data->dev_flags & RTE_ETH_DEV_REPRESENTOR) At least 'txgbe_vf_representor_init()' should set the 'RTE_ETH_DEV_REPRESENTOR' in this patch for this check to make sense. <...> > + > +#ifdef RTE_LIBRTE_TXGBE_DEBUG_INIT > +#define PMD_TLOG_INIT(level, fmt, args...) \ > + rte_log(RTE_LOG_ ## level, txgbe_logtype_init, \ > + "%s(): " fmt, __func__, ##args) > +#else > +#define PMD_TLOG_INIT(level, fmt, args...) do { } while (0) > +#endif > + > +#ifdef RTE_LIBRTE_TXGBE_DEBUG_DRIVER > +#define PMD_TLOG_DRIVER(level, fmt, args...) \ > + rte_log(RTE_LOG_ ## level, txgbe_logtype_driver, \ > + "%s(): " fmt, __func__, ##args) > +#else > +#define PMD_TLOG_DRIVER(level, fmt, args...) do { } while (0) > +#endif There is not config types for 'RTE_LIBRTE_TXGBE_DEBUG_INIT' & 'RTE_LIBRTE_TXGBE_DEBUG_DRIVER' and above there is already dynamic log types for them, these look redundant. > + > +/* > + * PMD_DEBUG_LOG: for debugger > + */ > +#define TLOG_EMERG(fmt, args...) PMD_TLOG_DRIVER(EMERG, fmt, ##args) > +#define TLOG_ALERT(fmt, args...) PMD_TLOG_DRIVER(ALERT, fmt, ##args) > +#define TLOG_CRIT(fmt, args...) PMD_TLOG_DRIVER(CRIT, fmt, ##args) > +#define TLOG_ERR(fmt, args...) PMD_TLOG_DRIVER(ERR, fmt, ##args) > +#define TLOG_WARN(fmt, args...) PMD_TLOG_DRIVER(WARNING, fmt, ##args) > +#define TLOG_NOTICE(fmt, args...) PMD_TLOG_DRIVER(NOTICE, fmt, ##args) > +#define TLOG_INFO(fmt, args...) PMD_TLOG_DRIVER(INFO, fmt, ##args) > +#define TLOG_DEBUG(fmt, args...) PMD_TLOG_DRIVER(DEBUG, fmt, ##args) These can be dropped as well if 'PMD_TLOG_DRIVER' removed. > + > +/* to be deleted */ > +#define DEBUGOUT(fmt, args...) TLOG_DEBUG(fmt, ##args) > +#define PMD_INIT_FUNC_TRACE() TLOG_DEBUG(" >>") > +#define DEBUGFUNC(fmt) TLOG_DEBUG(fmt) It looks like they are forgotten to be deleted. > + > +/* > + * PMD_TEMP_LOG: for tester > + */ > +#ifdef RTE_LIBRTE_TXGBE_DEBUG > +#define wjmsg_line(fmt, ...) \ > + do { \ > + RTE_LOG(CRIT, PMD, "%s(%d): " fmt, \ > + __FUNCTION__, __LINE__, ## __VA_ARGS__); \ > + } while (0) > +#define wjmsg_stack(fmt, ...) \ > + do { \ > + wjmsg_line(fmt, ## __VA_ARGS__); \ > + rte_dump_stack(); \ > + } while (0) > +#define wjmsg wjmsg_line > + > +#define wjdump(mb) { \ > + int j; char buf[128] = ""; \ > + wjmsg("data_len=%d pkt_len=%d vlan_tci=%d " \ > + "packet_type=0x%08x ol_flags=0x%016lx " \ > + "hash.rss=0x%08x hash.fdir.hash=0x%04x hash.fdir.id=%d\n", \ > + mb->data_len, mb->pkt_len, mb->vlan_tci, \ > + mb->packet_type, mb->ol_flags, \ > + mb->hash.rss, mb->hash.fdir.hash, mb->hash.fdir.id); \ > + for (j = 0; j < mb->data_len; j++) { \ > + sprintf(buf + strlen(buf), "%02x ", \ > + ((uint8_t *)(mb->buf_addr) + mb->data_off)[j]); \ > + if (j % 8 == 7) {\ > + wjmsg("%s\n", buf); \ > + buf[0] = '\0'; \ > + } \ > + } \ > + wjmsg("%s\n", buf); \ > +} > +#else /* RTE_LIBRTE_TXGBE_DEBUG */ > +#define wjmsg_line(fmt, args...) do {} while (0) > +#define wjmsg_limit(fmt, args...) do {} while (0) > +#define wjmsg_stack(fmt, args...) do {} while (0) > +#define wjmsg(fmt, args...) do {} while (0) > +#define wjdump(fmt, args...) do {} while (0) > +#endif /* RTE_LIBRTE_TXGBE_DEBUG */ The 'RTE_LIBRTE_TXGBE_DEBUG' also doesn't exist. <...> > \ No newline at end of file Can you please add the EOL.