[dpdk-dev] [PATCH v2 0/2] fix and improve uio_pci_generic support

Bruce Richardson bruce.richardson at intel.com
Tue Feb 24 12:32:47 CET 2015


On Tue, Feb 24, 2015 at 12:23:15PM +0100, David Marchand wrote:
> Hello Bruce,
> 
> On Tue, Feb 24, 2015 at 11:53 AM, Bruce Richardson <
> bruce.richardson at intel.com> wrote:
> 
> > On Mon, Feb 23, 2015 at 05:02:33PM +0000, Bruce Richardson wrote:
> > > This patch does some cleanup of the uio mapping code to
> > > a) fix issue with mmap of PCI bars reported by Tetsuya and confirmed
> > > by others.
> > > b) eliminate redundant code and reduce scans of /sys
> > >
> > >
> > > Bruce Richardson (2):
> > >   eal: mmap uio resources using resourceX files
> > >   eal: populate uio_maps from pci mem_resources array
> > >
> > >  lib/librte_eal/common/include/rte_pci.h    |   2 +-
> > >  lib/librte_eal/linuxapp/eal/eal_pci_init.h |   1 +
> > >  lib/librte_eal/linuxapp/eal/eal_pci_uio.c  | 173
> > +++++++++++------------------
> > >  lib/librte_eal/linuxapp/eal/eal_pci_vfio.c |   1 +
> > >  4 files changed, 66 insertions(+), 111 deletions(-)
> > >
> > > --
> > > 2.1.0
> > >
> > Given your previous suggestions on the uio_pic_generic code, I'd appreciate
> > any feedback you could provide on this patchset.
> 
> 
> Well, I only have one pending question on the use of resourceX files
> instead of /dev/uioX.
> You rely on sysfs mmap code for pci resources.
> Is this really equivalent to uio mmap operations ?

uio_pci_generic provides no mappings via /dev/uioX, so the may to mmap the 
bars using uio_pci_generic is via the sysfs. [1]

> If you can ensure me this won't break igb_uio setups, then these patches
> are ok for me.

Since igb_uio is based on the same uio_pci_generic framework, what works for
uio_pci_generic should work for igb_uio also - and testing indicates that this
works. Danny could perhaps provide better insights than I can into any guarantees
as to not breaking things, but I've tested this on a couple of platforms with
1G and 10G NICs using both igb_uio and uio_pci_generic, both individually and
in combination. I've also verified multiprocess support and done a quick sanity
test with 32-bit. Everything seems ok in testing thus far.

> 
> Thanks for the cleanup in eal_pci_uio.c.
> 
No problem.

> 
> -- 
> David Marchand

/Bruce

[1]: https://lkml.org/lkml/2012/3/20/375


More information about the dev mailing list