From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ferruh Yigit Subject: Re: [RFC] igb_uio: deprecate iomem and ioport mapping Date: Thu, 5 Jan 2017 15:23:46 +0000 Message-ID: References: <1472696197-37614-1-git-send-email-jianfeng.tan@intel.com> <20161202154706.3676195c@xeon-e3> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Cc: "dev@dpdk.org" , "david.marchand@6wind.com" To: "Tan, Jianfeng" , Stephen Hemminger Return-path: Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id D7B8F3777 for ; Thu, 5 Jan 2017 16:23:48 +0100 (CET) In-Reply-To: List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 12/5/2016 7:04 AM, Tan, Jianfeng wrote: > Hi Stephen, > >> -----Original Message----- >> From: Stephen Hemminger [mailto:stephen@networkplumber.org] >> Sent: Saturday, December 3, 2016 7:47 AM >> To: Tan, Jianfeng >> Cc: dev@dpdk.org; david.marchand@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 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 >> >> 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. 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? If you agree to drop, would you mind sending a patch to remove existing deprecation notice? Thanks, ferruh > > Thank you for reviewing! > > Thanks, > Jianfeng >