[dpdk-dev] [PATCH 2/2] doc: update programmers guide for uio_pci_generic
Iremonger, Bernard
bernard.iremonger at intel.com
Wed Feb 25 13:19:10 CET 2015
> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Bruce Richardson
> Sent: Tuesday, February 24, 2015 4:28 PM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH 2/2] doc: update programmers guide for uio_pci_generic
>
> Since DPDK now has support for the in-tree uio_pci_generic driver, update the programmers guide
> document to reference this module, and to use it in preference to the igb_uio driver, which is DPDK-
> specific.
>
> Signed-off-by: Bruce Richardson <bruce.richardson at intel.com>
> ---
> doc/guides/prog_guide/env_abstraction_layer.rst | 8 ++++----
> doc/guides/prog_guide/intel_dpdk_xen_based_packet_switch_sol.rst | 6 +++---
> doc/guides/prog_guide/kernel_nic_interface.rst | 2 +-
> doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst | 8 ++++----
> doc/guides/prog_guide/poll_mode_drv_paravirtual_vmxnets_nic.rst | 2 +-
> 5 files changed, 13 insertions(+), 13 deletions(-)
>
> diff --git a/doc/guides/prog_guide/env_abstraction_layer.rst
> b/doc/guides/prog_guide/env_abstraction_layer.rst
> index 231e266..b5321c3 100644
> --- a/doc/guides/prog_guide/env_abstraction_layer.rst
> +++ b/doc/guides/prog_guide/env_abstraction_layer.rst
> @@ -66,7 +66,7 @@ EAL in a Linux-userland Execution Environment
> ---------------------------------------------
>
> In a Linux user space environment, the DPDK application runs as a user-space application using the
> pthread library.
> -PCI information about devices and address space is discovered through the /sys kernel interface and
> through a module called igb_uio.
> +PCI information about devices and address space is discovered through the /sys kernel interface and
> through kernel modules such as uio_pci_generic, or igb_uio.
> Refer to the UIO: User-space drivers documentation in the Linux kernel. This memory is mmap'd in
> the application.
>
> The EAL performs physical memory allocation using mmap() in hugetlbfs (using huge page sizes to
> increase performance).
> @@ -134,10 +134,10 @@ PCI Access
> ~~~~~~~~~~
>
> The EAL uses the /sys/bus/pci utilities provided by the kernel to scan the content on the PCI bus.
> -
> -To access PCI memory, a kernel module called igb_uio provides a /dev/uioX device file
> +To access PCI memory, a kernel module called uio_pci_generic provides a
> +/dev/uioX device file and resource files in /sys
> that can be mmap'd to obtain access to PCI address space from the application.
> -It uses the uio kernel feature (userland driver).
> +The DPDK-specific igb_uio module can also be used for this. Both drivers use the uio kernel feature
> (userland driver).
>
> Per-lcore and Shared Variables
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> diff --git a/doc/guides/prog_guide/intel_dpdk_xen_based_packet_switch_sol.rst
> b/doc/guides/prog_guide/intel_dpdk_xen_based_packet_switch_sol.rst
> index 1f1e04f..a0dd959 100644
> --- a/doc/guides/prog_guide/intel_dpdk_xen_based_packet_switch_sol.rst
> +++ b/doc/guides/prog_guide/intel_dpdk_xen_based_packet_switch_sol.rst
> @@ -306,12 +306,12 @@ Building and Running the Switching Backend
> Refer to the *DPDK Getting Started Guide* for more information on memory management in the
> DPDK.
> In the above command, 4 GB memory is reserved (2048 of 2 MB pages) for DPDK.
>
> -#. Load igb_uio and bind one Intel NIC controller to igb_uio:
> +#. Load uio_pci_generic and bind one Intel NIC controller to it:
>
> .. code-block:: console
>
> - insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
> - python tools/dpdk_nic_bind.py -b igb_uio 0000:09:00:00.0
Hi Bruce,
Should the information about igb_uio be retained alongside the new information about uio_pci_generic?
> + modprobe uio_pci_generic
> + python tools/dpdk_nic_bind.py -b uio_pci_generic
> + 0000:09:00:00.0
>
> In this case, 0000:09:00.0 is the PCI address for the NIC controller.
>
> diff --git a/doc/guides/prog_guide/kernel_nic_interface.rst
> b/doc/guides/prog_guide/kernel_nic_interface.rst
> index 0276019..9ed7688 100644
> --- a/doc/guides/prog_guide/kernel_nic_interface.rst
> +++ b/doc/guides/prog_guide/kernel_nic_interface.rst
> @@ -224,7 +224,7 @@ Otherwise, by default, KNI will not enable its backend support capability.
>
> Of course, as a prerequisite, the vhost/vhost-net kernel CONFIG should be chosen before compiling
> the kernel.
>
> -#. Compile the DPDK and insert igb_uio as normal.
> +#. Compile the DPDK and insert uio_pci_generic/igb_uio kernel modules as normal.
>
> #. Insert the KNI kernel module:
>
> diff --git a/doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst
> b/doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst
> index 86f4f60..b0a6250 100644
> --- a/doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst
> +++ b/doc/guides/prog_guide/poll_mode_drv_emulated_virtio_nic.rst
> @@ -113,7 +113,7 @@ Host2VM communication example
>
> insmod rte_kni.ko
>
> - Other basic DPDK preparations like hugepage enabling, igb_uio port binding are not listed here.
> + Other basic DPDK preparations like hugepage enabling, uio port binding are not listed here.
> Please refer to the *DPDK Getting Started Guide* for detailed instructions.
>
> #. Launch the kni user application:
> @@ -154,7 +154,7 @@ Host2VM communication example
> In the above example, virtio port 0 in the guest VM will be associated with vEth0, which in turns
> corresponds to a physical port,
> which means received packets come from vEth0, and transmitted packets is sent to vEth0.
>
> -#. In the guest, bind the virtio device to the igb_uio kernel module and start the forwarding
> application.
> +#. In the guest, bind the virtio device to the uio_pci_generic kernel module and start the forwarding
> application.
> When the virtio port in guest bursts rx, it is getting packets from the raw socket's receive queue.
> When the virtio port bursts tx, it is sending packet to the tx_q.
>
> @@ -162,8 +162,8 @@ Host2VM communication example
>
> modprobe uio
> echo 512 > /sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
> - insmod x86_64-native-linuxapp-gcc/kmod/igb_uio.ko
> - python tools/dpdk_nic_bind.py -b igb_uio 00:03.0
Should the information about igb_uio be retained alongside the new information about uio_pci_generic?
> + modprobe uio_pci_generic
> + python tools/dpdk_nic_bind.py -b uio_pci_generic 00:03.0
>
> We use testpmd as the forwarding application in this example.
>
> diff --git a/doc/guides/prog_guide/poll_mode_drv_paravirtual_vmxnets_nic.rst
> b/doc/guides/prog_guide/poll_mode_drv_paravirtual_vmxnets_nic.rst
> index e48bc13..769723e 100644
> --- a/doc/guides/prog_guide/poll_mode_drv_paravirtual_vmxnets_nic.rst
> +++ b/doc/guides/prog_guide/poll_mode_drv_paravirtual_vmxnets_nic.rst
> @@ -150,7 +150,7 @@ This section describes an example setup for Phy-vSwitch-VM-Phy
> communication.
>
> .. note::
>
> - Other instructions on preparing to use DPDK such as, hugepage enabling, igb_uio port binding are
> not listed here.
> + Other instructions on preparing to use DPDK such as, hugepage enabling, uio port binding are not
> listed here.
> Please refer to *DPDK Getting Started Guide and DPDK Sample Application's User Guide* for
> detailed instructions.
>
> The packet reception and transmission flow path is:
> --
> 2.1.0
Regards,
Bernard.
More information about the dev
mailing list