Hi Stephen, > -----Original Message----- > From: Stephen Hemminger [mailto:step...@networkplumber.org] > Sent: Saturday, December 3, 2016 7:47 AM > To: Tan, Jianfeng > Cc: dev@dpdk.org; david.march...@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....@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....@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 anyway. (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 kernels. 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: http://dpdk.org/dev/patchwork/patch/17495/. > 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. Thank you for reviewing! Thanks, Jianfeng