DPDK patches and discussions
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@tuxdriver.com>
To: David Marchand <david.marchand@6wind.com>
Cc: dev@dpdk.org, thomas.monjalon@6wind.com,
	stephen@networkplumber.org, bruce.richardson@intel.com,
	pmatilai@redhat.com, christian.ehrhardt@canonical.com,
	Wenzhuo Lu <wenzhuo.lu@intel.com>
Subject: Re: [dpdk-dev] [PATCH v3 01/13] e1000: move pci device ids to driver
Date: Wed, 20 Apr 2016 09:29:08 -0400	[thread overview]
Message-ID: <20160420132908.GA21072@hmsreliant.think-freely.org> (raw)
In-Reply-To: <1461156236-25349-2-git-send-email-david.marchand@6wind.com>

On Wed, Apr 20, 2016 at 02:43:44PM +0200, David Marchand wrote:
> test application and kni still want to know e1000 pci devices.
> So let's create headers in the driver that will be used by them.
> 
> I wanted to reuse base/ headers, but because of some headaches trying to resolve
> macros redefinition collisions in kni (with ixgbe next commit), I left it as is.
> 
> Signed-off-by: David Marchand <david.marchand@6wind.com>
> ---
>  app/test/Makefile                               |   3 +
>  app/test/test_pci.c                             |   3 +-
>  drivers/net/e1000/em_ethdev.c                   |   2 +-
>  drivers/net/e1000/em_pci_dev_ids.h              | 208 +++++++++++++++++++
>  drivers/net/e1000/igb_ethdev.c                  |   4 +-
>  drivers/net/e1000/igb_pci_dev_ids.h             | 165 +++++++++++++++
>  lib/librte_eal/common/include/rte_pci_dev_ids.h | 254 ------------------------
>  lib/librte_eal/linuxapp/kni/Makefile            |   1 +
>  lib/librte_eal/linuxapp/kni/kni_misc.c          |   4 +-
>  9 files changed, 384 insertions(+), 260 deletions(-)
>  create mode 100644 drivers/net/e1000/em_pci_dev_ids.h
>  create mode 100644 drivers/net/e1000/igb_pci_dev_ids.h
> 
> diff --git a/app/test/Makefile b/app/test/Makefile
> index a4907d5..8a1f54c 100644
> --- a/app/test/Makefile
> +++ b/app/test/Makefile
> @@ -171,6 +171,9 @@ CFLAGS_test_memcpy_perf.o += -fno-var-tracking-assignments
>  endif
>  endif
>  
> +# pci tests want to know some pci devices ids
> +CFLAGS_test_pci.o += -I$(RTE_SDK)/drivers/net/e1000
> +
>  # this application needs libraries first
>  DEPDIRS-y += lib drivers
>  
> diff --git a/app/test/test_pci.c b/app/test/test_pci.c
> index 0ed357e..7215936 100644
> --- a/app/test/test_pci.c
> +++ b/app/test/test_pci.c
> @@ -77,8 +77,9 @@ struct rte_pci_id my_driver_id2[] = {
>  
>  /* IGB & EM NICS */
>  #define RTE_PCI_DEV_ID_DECL_EM(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
> +#include <em_pci_dev_ids.h>
>  #define RTE_PCI_DEV_ID_DECL_IGB(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
> -#include <rte_pci_dev_ids.h>
> +#include <igb_pci_dev_ids.h>
>  
>  { .vendor_id = 0, /* sentinel */ },
>  };
> diff --git a/drivers/net/e1000/em_ethdev.c b/drivers/net/e1000/em_ethdev.c
> index 1f80c05..203a9e5 100644
> --- a/drivers/net/e1000/em_ethdev.c
> +++ b/drivers/net/e1000/em_ethdev.c
> @@ -139,7 +139,7 @@ static enum e1000_fc_mode em_fc_setting = e1000_fc_full;
>  static const struct rte_pci_id pci_id_em_map[] = {
>  
>  #define RTE_PCI_DEV_ID_DECL_EM(vend, dev) {RTE_PCI_DEVICE(vend, dev)},
> -#include "rte_pci_dev_ids.h"
> +#include "em_pci_dev_ids.h"
>  
>  {0},
>  };
> diff --git a/drivers/net/e1000/em_pci_dev_ids.h b/drivers/net/e1000/em_pci_dev_ids.h
> new file mode 100644
> index 0000000..736a68e
> --- /dev/null
> +++ b/drivers/net/e1000/em_pci_dev_ids.h
> @@ -0,0 +1,208 @@
> +/*-
> + * This file is provided under a dual BSD/GPLv2 license.  When using or
> + *   redistributing this file, you may do so under either license.
> + *
> + *   GPL LICENSE SUMMARY
> + *
> + *   Copyright(c) 2010-2015 Intel Corporation. All rights reserved.
> + *
> + *   This program is free software; you can redistribute it and/or modify
> + *   it under the terms of version 2 of the GNU General Public License as
> + *   published by the Free Software Foundation.
> + *
> + *   This program is distributed in the hope that it will be useful, but
> + *   WITHOUT ANY WARRANTY; without even the implied warranty of
> + *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
> + *   General Public License for more details.
> + *
> + *   The full GNU General Public License is included in this distribution
> + *   in the file called LICENSE.GPL.
> + *
> + *   Contact Information:
> + *   Intel Corporation
> + *
> + *   BSD LICENSE
> + *
> + *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> + *   All rights reserved.
> + *
> + *   Redistribution and use in source and binary forms, with or without
> + *   modification, are permitted provided that the following conditions
> + *   are met:
> + *
> + *     * Redistributions of source code must retain the above copyright
> + *       notice, this list of conditions and the following disclaimer.
> + *     * Redistributions in binary form must reproduce the above copyright
> + *       notice, this list of conditions and the following disclaimer in
> + *       the documentation and/or other materials provided with the
> + *       distribution.
> + *     * Neither the name of Intel Corporation nor the names of its
> + *       contributors may be used to endorse or promote products derived
> + *       from this software without specific prior written permission.
> + *
> + *   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
> + *   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
> + *   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
> + *   A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
> + *   OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
> + *   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
> + *   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
> + *   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
> + *   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
> + *   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
> + *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
> + *
> + */
> +
> +#ifndef RTE_PCI_DEV_ID_DECL_EM
> +#define RTE_PCI_DEV_ID_DECL_EM(vend, dev)
> +#endif
> +
> +#ifndef PCI_VENDOR_ID_INTEL
> +/** Vendor ID used by Intel devices */
> +#define PCI_VENDOR_ID_INTEL 0x8086
> +#endif
> +
This is broken, PCI_VENDOR_ID_INTEL should be defined in a central location for
all pci drivers, not redefined in every compilation unit.  And you can likely
just remvoe the RTE_PCI_DEV_ID_DECL_* macros from each patch and use the
RTE_PCI_DEV macro, as all the DECL macros just evaluate to that anyway.

><snip>

> +
> +#undef RTE_PCI_DEV_ID_DECL_EM
Why are you undefining this here?  Is it because its in a header file and you're
concerned about multiple inclusion?  You should use an ifdef guard instead, or
just define all the device id's in the header and ennumerate the pci table in
one of the C files for the driver.  That should apply to all the patches in this
series I think


Neil

  reply	other threads:[~2016-04-20 13:29 UTC|newest]

Thread overview: 92+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-05 19:37 [dpdk-dev] time to kill rte_pci_dev_ids.h Stephen Hemminger
2016-01-06  1:40 ` Thomas Monjalon
2016-01-08 13:20   ` David Marchand
2016-01-10 12:50     ` [dpdk-dev] [PATCH 00/11] kill global pci device id list David Marchand
2016-01-10 12:50       ` [dpdk-dev] [PATCH 01/11] e1000: move pci device ids to driver David Marchand
2016-01-10 12:50       ` [dpdk-dev] [PATCH 02/11] ixgbe: " David Marchand
2016-01-10 12:50       ` [dpdk-dev] [PATCH 03/11] i40e: " David Marchand
2016-01-10 20:02         ` Stephen Hemminger
2016-01-12  8:45           ` David Marchand
2016-01-10 12:50       ` [dpdk-dev] [PATCH 04/11] fm10k: " David Marchand
2016-01-10 12:50       ` [dpdk-dev] [PATCH 05/11] virtio: " David Marchand
2016-01-10 12:50       ` [dpdk-dev] [PATCH 06/11] vmxnet3: " David Marchand
2016-01-10 12:50       ` [dpdk-dev] [PATCH 07/11] enic: " David Marchand
2016-01-10 12:50       ` [dpdk-dev] [PATCH 08/11] bnx2x: " David Marchand
2016-01-10 12:50       ` [dpdk-dev] [PATCH 09/11] doc: refresh headers list David Marchand
2016-01-12 14:06         ` Mcnamara, John
2016-01-16 15:10           ` David Marchand
2016-01-18  9:47             ` Thomas Monjalon
2016-01-18 16:25             ` Mcnamara, John
2016-01-10 12:50       ` [dpdk-dev] [PATCH 10/11] pci: no need for global device ids list David Marchand
2016-01-10 12:50       ` [dpdk-dev] [PATCH 11/11] pci: place all uio pci device ids in a dedicated section David Marchand
2016-01-10 12:58       ` [dpdk-dev] [PATCH 00/11] kill global pci device id list David Marchand
2016-01-10 13:24         ` Thomas Monjalon
2016-01-10 13:26           ` David Marchand
2016-01-10 13:27             ` David Marchand
2016-01-10 15:53       ` Zhang, Helin
2016-01-16 15:02         ` David Marchand
2016-01-21  1:12           ` Zhang, Helin
2016-01-18 12:30       ` [dpdk-dev] [PATCH v2 00/10] " David Marchand
2016-01-18 12:30         ` [dpdk-dev] [PATCH v2 01/10] e1000: move pci device ids to driver David Marchand
2016-01-18 12:30         ` [dpdk-dev] [PATCH v2 02/10] ixgbe: " David Marchand
2016-01-18 12:30         ` [dpdk-dev] [PATCH v2 03/10] i40e: " David Marchand
2016-01-18 12:30         ` [dpdk-dev] [PATCH v2 04/10] fm10k: " David Marchand
2016-01-18 12:30         ` [dpdk-dev] [PATCH v2 05/10] virtio: " David Marchand
2016-01-18 12:30         ` [dpdk-dev] [PATCH v2 06/10] vmxnet3: " David Marchand
2016-01-18 12:30         ` [dpdk-dev] [PATCH v2 07/10] enic: " David Marchand
2016-01-18 12:30         ` [dpdk-dev] [PATCH v2 08/10] bnx2x: " David Marchand
2016-01-18 12:30         ` [dpdk-dev] [PATCH v2 09/10] pci: no need for global device ids list David Marchand
2016-01-18 12:30         ` [dpdk-dev] [PATCH v2 10/10] pci: place all uio pci device ids in a dedicated section David Marchand
2016-01-19  7:30           ` Thomas Monjalon
2016-01-19 14:29             ` Neil Horman
2016-01-19 16:10               ` Stephen Hemminger
2016-01-19 20:56                 ` Neil Horman
2016-01-19 21:35                   ` Stephen Hemminger
2016-01-20 15:40                     ` Neil Horman
2016-02-24 11:37                       ` Bruce Richardson
2016-02-24 11:50                         ` Thomas Monjalon
2016-02-24 14:18                           ` Neil Horman
2016-04-20 12:43         ` [dpdk-dev] [PATCH v3 00/13] kill global pci device id list David Marchand
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 01/13] e1000: move pci device ids to driver David Marchand
2016-04-20 13:29             ` Neil Horman [this message]
2016-04-20 13:39               ` David Marchand
2016-04-20 18:15                 ` Neil Horman
2016-04-21  7:27                   ` David Marchand
2016-04-21 12:08                     ` Neil Horman
2016-04-21 12:41                       ` Thomas Monjalon
2016-04-22 12:13                         ` Neil Horman
2016-04-22 13:22                           ` Thomas Monjalon
2016-07-08 13:31             ` Thomas Monjalon
2016-07-11  5:33               ` Yuanhan Liu
2016-07-11  5:56                 ` Thomas Monjalon
2016-07-11  6:05                   ` Yuanhan Liu
2016-07-11 11:35                   ` David Marchand
2016-07-11 12:05                     ` Yuanhan Liu
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 02/13] ixgbe: " David Marchand
2016-04-29  1:34             ` Wu, Jingjing
2016-05-04  8:26               ` David Marchand
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 03/13] i40e: " David Marchand
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 04/13] fm10k: " David Marchand
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 05/13] virtio: " David Marchand
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 06/13] vmxnet3: " David Marchand
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 07/13] enic: " David Marchand
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 08/13] bnx2x: " David Marchand
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 09/13] ena: remove unneeded pci macro David Marchand
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 10/13] pci: no need for global device ids list David Marchand
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 11/13] drivers: constify pci id tables David Marchand
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 12/13] drivers: export pci drivers David Marchand
2016-04-20 12:43           ` [dpdk-dev] [PATCH v3 13/13] app: introduce dpdk-obj-info tool David Marchand
2016-04-21  8:07           ` [dpdk-dev] [PATCH v3 00/13] kill global pci device id list David Marchand
2016-04-21 12:13             ` Neil Horman
2016-07-11 14:40           ` [dpdk-dev] [PATCH v4 00/10] kill global pci device id list (almost) David Marchand
2016-07-11 14:40             ` [dpdk-dev] [PATCH v4 01/10] eal: remove PCI device ids header from doxygen David Marchand
2016-07-11 14:40             ` [dpdk-dev] [PATCH v4 02/10] net/e1000: move em PCI device ids to the driver David Marchand
2016-07-11 14:40             ` [dpdk-dev] [PATCH v4 03/10] net/i40e: move " David Marchand
2016-07-11 14:40             ` [dpdk-dev] [PATCH v4 04/10] net/fm10k: " David Marchand
2016-07-11 14:40             ` [dpdk-dev] [PATCH v4 05/10] net/virtio: " David Marchand
2016-07-11 14:40             ` [dpdk-dev] [PATCH v4 06/10] net/vmxnet3: " David Marchand
2016-07-11 14:40             ` [dpdk-dev] [PATCH v4 07/10] net/enic: " David Marchand
2016-07-11 14:40             ` [dpdk-dev] [PATCH v4 08/10] net/bnx2x: " David Marchand
2016-07-11 14:40             ` [dpdk-dev] [PATCH v4 09/10] net/bnxt: " David Marchand
2016-07-11 14:40             ` [dpdk-dev] [PATCH v4 10/10] net/ena: remove unneeded PCI macro David Marchand
2016-07-11 16:27             ` [dpdk-dev] [PATCH v4 00/10] kill global pci device id list (almost) Thomas Monjalon

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=20160420132908.GA21072@hmsreliant.think-freely.org \
    --to=nhorman@tuxdriver.com \
    --cc=bruce.richardson@intel.com \
    --cc=christian.ehrhardt@canonical.com \
    --cc=david.marchand@6wind.com \
    --cc=dev@dpdk.org \
    --cc=pmatilai@redhat.com \
    --cc=stephen@networkplumber.org \
    --cc=thomas.monjalon@6wind.com \
    --cc=wenzhuo.lu@intel.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).