DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: Danny Zhou <danny.zhou@intel.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH 0/3] Enable uio_pci_generic support
Date: Mon, 9 Feb 2015 14:30:00 +0000	[thread overview]
Message-ID: <20150209143000.GA8524@bricha3-MOBL3> (raw)
In-Reply-To: <1422523699-17181-1-git-send-email-danny.zhou@intel.com>

On Thu, Jan 29, 2015 at 05:28:16PM +0800, Danny Zhou wrote:
> Linux kernel provides UIO as well as VFIO mechanism to support writing user
> space device driver. Comparing to UIO which is available since 2.6.32 kernel,
> the VFIO is introduced into kernel since version 3.6.0 with better interrupt
> and memory protection (build on top of Intel VT-d technology) supports.
> Basically, UIO and VFIO do two common things below:
> 1) Map PCIe device's I/O memory space to user space driver
> 2) Support device interrupt notification mechanism that notifies user space
>    driver/application when a device interrupt triggers.
> 
> To run an DPDK application and make use of VFIO, two in_kernel modules
> vfio and vfio-pci module must be loaded. To use UIO, a DPDK kernel
> module igb_uio, which was there since DPDK is invented, must be loaded to
> attach to in_kernel uio module. As an solution to deprecate igb_uio, 
> this patch serials leverage the uio_pci_generic in_kernel module to support
> DPDK user space PMD in a generic fashion (similar to how VFIO works), to
> remove user space DPDK dependency on GPL code igb_uio in kernel. 
> 
> Example to bind Network Ports to uio_pci_generic:
> 	modprobe uio
> 	modprobe uio_pci_generic
> 	/* to bind device 08:00.0, to the uio_pci_generic driver */
> 	./tools/dpdk_nic_bind.py -b uio_pci_generic 08:00.0
> 
> Note: this patch set does not remove igb_uio support due to igb_uio supports
> creating maximum number of SR-IOV VFs (Virtual Functions) by using max_vfs 
> kernel parameter on older kernels (kernel 3.7.x and below).
> Specifically, igb_uio explicitly calls pci_enable_sriov() to create VFs, while
> it is not invoked in either uio or uio_pci_generic kernel modules. On kernel 3.8.x
> and above, user can use the standard sysfs to enable VFs. For examples:
> 
> #echo $num_vf_enabled > /sys/class/net/$dev/device/sriov_numvfs   //enable VFs
> #echo 0 > /sys/class/net/$dev/device/sriov_numvfs                 //disable VFs
> 
> Danny Zhou (3):
>   eal: add interrupt enable/disable routines for uio_pci_generic
>   eal: enable uio_pci_generic support
>   tools: enable binding NIC device to uio_pci_generic
> 
>  lib/librte_eal/common/include/rte_pci.h            |   1 +
>  lib/librte_eal/linuxapp/eal/eal_interrupts.c       |  68 +++++--
>  lib/librte_eal/linuxapp/eal/eal_pci.c              |   2 +-
>  lib/librte_eal/linuxapp/eal/eal_pci_uio.c          | 202 +++++++++++----------
>  .../linuxapp/eal/include/exec-env/rte_interrupts.h |  10 +-
>  tools/dpdk_nic_bind.py                             |   2 +-
>  6 files changed, 172 insertions(+), 113 deletions(-)
> 
> -- 
> 1.8.1.4
> 

Series
Acked-by: Bruce Richardson <bruce.richardson@intel.com>

      parent reply	other threads:[~2015-02-09 14:30 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-29  9:28 Danny Zhou
2015-01-29  9:28 ` [dpdk-dev] [PATCH v1 1/3] eal: enable " Danny Zhou
2015-02-18 13:39   ` Thomas Monjalon
2015-02-19 15:48     ` Zhou, Danny
2015-01-29  9:28 ` [dpdk-dev] [PATCH v1 2/3] eal: add interrupt enable/disable routines for uio_pci_generic Danny Zhou
2015-01-29  9:28 ` [dpdk-dev] [PATCH v1 3/3] tools: enable binding NIC device to uio_pci_generic Danny Zhou
2015-01-29  9:34 ` [dpdk-dev] [PATCH 0/3] Enable uio_pci_generic support Qiu, Michael
2015-02-09 14:30 ` Bruce Richardson [this message]

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=20150209143000.GA8524@bricha3-MOBL3 \
    --to=bruce.richardson@intel.com \
    --cc=danny.zhou@intel.com \
    --cc=dev@dpdk.org \
    /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).