DPDK patches and discussions
 help / color / mirror / Atom feed
From: Neil Horman <nhorman@tuxdriver.com>
To: Sujith Sankar <ssujith@cisco.com>
Cc: dev@dpdk.org, prrao@cisco.com
Subject: Re: [dpdk-dev] [PATCH v3 6/6] DPDK changes for accommodating ENIC PMD
Date: Sun, 23 Nov 2014 19:17:44 -0500	[thread overview]
Message-ID: <20141124001744.GA7751@localhost.localdomain> (raw)
In-Reply-To: <1416758899-1351-7-git-send-email-ssujith@cisco.com>

On Sun, Nov 23, 2014 at 09:38:19PM +0530, Sujith Sankar wrote:
> Signed-off-by: Sujith Sankar <ssujith@cisco.com>
> ---
>  config/common_linuxapp                             | 5 +++++
>  lib/Makefile                                       | 1 +
>  lib/librte_eal/linuxapp/eal/eal_pci_vfio.c         | 7 +++++++
>  lib/librte_eal/linuxapp/eal/include/eal_pci_init.h | 1 +
>  mk/rte.app.mk                                      | 4 ++++
>  5 files changed, 18 insertions(+)
> 
> diff --git a/config/common_linuxapp b/config/common_linuxapp
> index 57b61c9..3c091e7 100644
> --- a/config/common_linuxapp
> +++ b/config/common_linuxapp
> @@ -210,6 +210,11 @@ CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM=4
>  CONFIG_RTE_LIBRTE_I40E_ITR_INTERVAL=-1
>  
>  #
> +# Compile burst-oriented Cisco ENIC PMD driver
> +#
> +CONFIG_RTE_LIBRTE_ENIC_PMD=y
> +
> +#
>  # Compile burst-oriented VIRTIO PMD driver
>  #
>  CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
> diff --git a/lib/Makefile b/lib/Makefile
> index e3237ff..1911790 100644
> --- a/lib/Makefile
> +++ b/lib/Makefile
> @@ -43,6 +43,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_CMDLINE) += librte_cmdline
>  DIRS-$(CONFIG_RTE_LIBRTE_ETHER) += librte_ether
>  DIRS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += librte_pmd_e1000
>  DIRS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += librte_pmd_ixgbe
> +DIRS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += librte_pmd_enic
>  DIRS-$(CONFIG_RTE_LIBRTE_I40E_PMD) += librte_pmd_i40e
>  DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += librte_pmd_bond
>  DIRS-$(CONFIG_RTE_LIBRTE_PMD_RING) += librte_pmd_ring
> diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
> index c776ddc..6bf8f2e 100644
> --- a/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
> +++ b/lib/librte_eal/linuxapp/eal/eal_pci_vfio.c
> @@ -736,6 +736,7 @@ pci_vfio_map_resource(struct rte_pci_device *dev)
>  		maps[i].offset = reg.offset;
>  		maps[i].size = reg.size;
>  		dev->mem_resource[i].addr = bar_addr;
> +		dev->mem_resource[i].len = reg.size;
>  	}
>  
>  	/* if secondary process, do not set up interrupts */
> @@ -791,4 +792,10 @@ pci_vfio_is_enabled(void)
>  {
>  	return vfio_cfg.vfio_enabled;
>  }
> +
> +int
> +pci_vfio_container_fd(void)
> +{
> +	return vfio_cfg.vfio_container_fd;
> +}
You should move this function definition to a separate patch and put it earlier
in the series, as you call this function two patches back.

Also, this gives me pause, as it seems like you're working around the VFIO api.
>From what I see, you just use this to get an fd that you can use in an ioctl to
set some DMA settings.  First off, theres already a function called
pci_vfio_get_container_fd, which does exactly what you are doing here, with
additional safety checking.  

However, even though there is an existing function to do what you want, I would
recommend that you not use it for your purposes.  Whenever you expose something
like a file descriptor, you run the risk of multiple accessors racing trying to
set/unset features and preform operations.  It would be better if you could add
apropriate api calls to vfio interface to set what you want.  That way the
library can add appropriate locking if/when needed

Neil

>  #endif
> diff --git a/lib/librte_eal/linuxapp/eal/include/eal_pci_init.h b/lib/librte_eal/linuxapp/eal/include/eal_pci_init.h
> index d758bee..c9e9e40 100644
> --- a/lib/librte_eal/linuxapp/eal/include/eal_pci_init.h
> +++ b/lib/librte_eal/linuxapp/eal/include/eal_pci_init.h
> @@ -71,6 +71,7 @@ int pci_uio_map_resource(struct rte_pci_device *dev);
>  
>  int pci_vfio_enable(void);
>  int pci_vfio_is_enabled(void);
> +int pci_vfio_container_fd(void);
>  int pci_vfio_mp_sync_setup(void);
>  
>  /* map VFIO resource prototype */
> diff --git a/mk/rte.app.mk b/mk/rte.app.mk
> index 285b65c..95c652f 100644
> --- a/mk/rte.app.mk
> +++ b/mk/rte.app.mk
> @@ -186,6 +186,10 @@ ifeq ($(CONFIG_RTE_LIBRTE_VMXNET3_PMD),y)
>  LDLIBS += -lrte_pmd_vmxnet3_uio
>  endif
>  
> +ifeq ($(CONFIG_RTE_LIBRTE_ENIC_PMD),y)
> +LDLIBS += -lrte_pmd_enic
> +endif
> +
>  ifeq ($(CONFIG_RTE_LIBRTE_VIRTIO_PMD),y)
>  LDLIBS += -lrte_pmd_virtio_uio
>  endif
> -- 
> 1.9.1
> 
> 

  reply	other threads:[~2014-11-24  0:07 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-23 16:08 [dpdk-dev] [PATCH v3 0/6] Cisco Systems Inc. VIC Ethernet PMD - " Sujith Sankar
2014-11-23 16:08 ` [dpdk-dev] [PATCH v3 1/6] ENIC PMD License Sujith Sankar
2014-11-23 16:08 ` [dpdk-dev] [PATCH v3 2/6] ENIC PMD Makefile Sujith Sankar
2014-11-23 16:08 ` [dpdk-dev] [PATCH v3 3/6] VNIC common code partially shared with ENIC kernel mode driver Sujith Sankar
2014-11-23 16:08 ` [dpdk-dev] [PATCH v3 4/6] ENIC PMD specific code Sujith Sankar
2014-11-23 16:08 ` [dpdk-dev] [PATCH v3 5/6] DPDK-ENIC PMD interface Sujith Sankar
2014-11-23 16:08 ` [dpdk-dev] [PATCH v3 6/6] DPDK changes for accommodating ENIC PMD Sujith Sankar
2014-11-24  0:17   ` Neil Horman [this message]
2014-11-24  5:45     ` Sujith Sankar (ssujith)
2014-11-24 11:33       ` Neil Horman
2014-11-24 16:12         ` Sujith Sankar (ssujith)
2014-11-24 17:19           ` Neil Horman
2014-11-25  6:13             ` Sujith Sankar (ssujith)
2014-11-25 11:30               ` Neil Horman
2014-11-24 11:03   ` David Marchand
2014-11-24 15:51     ` Sujith Sankar (ssujith)
2014-11-24 16:15       ` David Marchand
2014-11-24 16:27         ` Sujith Sankar (ssujith)

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=20141124001744.GA7751@localhost.localdomain \
    --to=nhorman@tuxdriver.com \
    --cc=dev@dpdk.org \
    --cc=prrao@cisco.com \
    --cc=ssujith@cisco.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).