[dpdk-dev] [RFC] igb_uio: deprecate iomem and ioport mapping
jianfeng.tan at intel.com
Fri Jan 6 02:52:53 CET 2017
> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Thursday, January 5, 2017 11:24 PM
> To: Tan, Jianfeng; Stephen Hemminger
> Cc: dev at dpdk.org; david.marchand at 6wind.com
> Subject: Re: [RFC] igb_uio: deprecate iomem and ioport mapping
> On 12/5/2016 7:04 AM, Tan, Jianfeng wrote:
> > Hi Stephen,
> >> -----Original Message-----
> >> From: Stephen Hemminger [mailto:stephen at networkplumber.org]
> >> Sent: Saturday, December 3, 2016 7:47 AM
> >> To: Tan, Jianfeng
> >> Cc: dev at dpdk.org; david.marchand at 6wind.com; Yigit, Ferruh
> >> Subject: Re: [RFC] igb_uio: deprecate iomem and ioport mapping
> >> On Thu, 1 Sep 2016 02:16:37 +0000
> >> Jianfeng Tan <jianfeng.tan at intel.com> wrote:
> >>> Previously in igb_uio, iomem is mapped, and both ioport and io mem
> >>> are recorded into uio framework, which is duplicated and makes the
> >>> code too complex.
> >>> For iomem, DPDK user space code never opens or reads files under
> >>> /sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/maps/. Instead,
> >>> /sys/pci/bus/devices/xxxx:xx:xx.x/resourceY are used to map device
> >>> memory.
> >>> For ioport, non-x86 platforms cannot read from files under
> >>> /sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/portio/ directly, because
> >>> non-x86 platforms need to map port region for access in user space,
> >>> see non-x86 version pci_uio_ioport_map(). x86 platforms can use the
> >>> the same way as uio_pci_generic.
> >>> This patch deprecates iomem and ioport mapping in igb_uio kernel
> >>> module, and adjusts the iomem implementation in both igb_uio and
> >>> uio_pci_generic:
> >>> - for x86 platform, get ports info from /proc/ioports;
> >>> - for non-x86 platform, map and get ports info by pci_uio_ioport_map().
> >>> Note: this will affect those applications who are using files under
> >>> /sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/maps/ and
> >>> /sys/pci/bus/devices/xxxx:xx:xx.x/uio/uioY/portio/.
> >>> Signed-off-by: Jianfeng Tan <jianfeng.tan at intel.com>
> >> What about people using older kernels with the new DPDK EAL and
> >> vice versa?
> > There are two things planned in this proposal:
> > (1) deprecating iomem mapping in igb_uio, which is not used in DPDK code
> > (2) deprecating ioport mapping in igb_uio, which has effect on ioport
> mapping for x86 platforms. The way we use to make up is to leverage how
> uio_pci_generic does, aka, based on /proc/ioports, and this proc file is
> available at very early stage of Linux (Even before 2.6.32).
> > So I don't see a problem there when running the new DPDK EAL on older
> > On the other way, running old DPDK EAL on new kernels, and using new
> igb_uio, right? Oops, this should have problem. Thank you for pointing out
> this. So how about just removing iomem? And my motivation to clean
> igb_uio like this way is to fix a problem here:
> >> It makes sense to make igb_uio generic for non DPDK
> >> usage, so it should probably follow the other UIO drivers.
> > Then the problem would be backward compatibility. I might need to
> reconsider this.
> Hi Jianfeng,
> Taking into account that this patch is for cleanup, and there may be
> some backward compatibility issues mentioned by Stephen, would you mind
> dropping this patch?
I agree to drop this patch.
> If you agree to drop, would you mind sending a patch to remove existing
> deprecation notice?
No problem, I'll do that.
> > Thank you for reviewing!
> > Thanks,
> > Jianfeng
More information about the dev