From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 4BD98376E for ; Fri, 27 Feb 2015 12:47:51 +0100 (CET) Received: from fmsmga002.fm.intel.com ([10.253.24.26]) by orsmga103.jf.intel.com with ESMTP; 27 Feb 2015 03:42:01 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.09,659,1418112000"; d="scan'208";a="684327418" Received: from bricha3-mobl3.ger.corp.intel.com ([10.243.20.27]) by fmsmga002.fm.intel.com with SMTP; 27 Feb 2015 03:47:48 -0800 Received: by (sSMTP sendmail emulation); Fri, 27 Feb 2015 11:47:46 +0025 Date: Fri, 27 Feb 2015 11:47:46 +0000 From: Bruce Richardson To: "Iremonger, Bernard" Message-ID: <20150227114746.GB12064@bricha3-MOBL3> References: <1424795260-13793-1-git-send-email-bruce.richardson@intel.com> <1424795260-13793-3-git-send-email-bruce.richardson@intel.com> <8CEF83825BEC744B83065625E567D7C2049ED878@IRSMSX108.ger.corp.intel.com> <20150225122730.GC9512@bricha3-MOBL3> <8CEF83825BEC744B83065625E567D7C2049ED912@IRSMSX108.ger.corp.intel.com> <20150225132042.GE9512@bricha3-MOBL3> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150225132042.GE9512@bricha3-MOBL3> Organization: Intel Shannon Ltd. User-Agent: Mutt/1.5.23 (2014-03-12) Cc: "dev@dpdk.org" Subject: Re: [dpdk-dev] [PATCH 2/2] doc: update programmers guide for uio_pci_generic X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Feb 2015 11:47:51 -0000 On Wed, Feb 25, 2015 at 01:20:43PM +0000, Bruce Richardson wrote: > On Wed, Feb 25, 2015 at 01:12:43PM +0000, Iremonger, Bernard wrote: > > > > > > > -----Original Message----- > > > From: Richardson, Bruce > > > Sent: Wednesday, February 25, 2015 12:28 PM > > > To: Iremonger, Bernard > > > Cc: dev@dpdk.org > > > Subject: Re: [dpdk-dev] [PATCH 2/2] doc: update programmers guide for uio_pci_generic > > > > > > On Wed, Feb 25, 2015 at 12:19:10PM +0000, Iremonger, Bernard wrote: > > > > > > > > > > > > > -----Original Message----- > > > > > From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Bruce > > > > > Richardson > > > > > Sent: Tuesday, February 24, 2015 4:28 PM > > > > > To: dev@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 > > > > > --- > > > > > 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.r > > > > > +++ st > > > > > @@ -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? > > > > > > > While the answer may not be as clear-cut as with the GSG, why would be bother covering both here. > > > We already ignore VFIO in these examples. > > > > > > /Bruce > > > > Hi Bruce, > > > > The method of loading is different for both modules, igb_uio uses insmod and uio_pci_generic uses modprobe. > > It would be useful to retain this igb_uio information. Maybe vfio information should be added too. > > This comment also applies to the GSG, the differences need to be documented. > > > Yes, the differences between the different modules needs to be documented, > including limitations of each one and when and why you might choose one over > the other. This probably belongs as a section in programmers guide. However, IMHO > it definitely does not belong in the GSG guide, except as a reference to the > programmers guide section. [I think section 3.1 is the best place for such > documentation]. > > Regards, > /Bruce >>From further testing, it appears that uio_pci_generic does not work with VF devices due to the fact that it doesn't allow MSI/MSI-X interrupts and requires than any device has a (legacy) interrupt available to it. Therefore, I'll do a suitable update to the docs to reflect this (perhaps a partial rollback of this patch). Investigation is continuing... Regards, /Bruce