From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yuanhan Liu Subject: Re: [PATCH] eal: map io resources for non x86 architectures Date: Fri, 18 Dec 2015 16:21:39 +0800 Message-ID: <20151218082139.GC18863@yliu-dev.sh.intel.com> References: <2241331.HNmyzf8foi@xps13> <2979402.yeVYlcCDUH@xps13> <20151218053053.GL29571@yliu-dev.sh.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: dev@dpdk.org To: Santosh Shukla Return-path: Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id 9FD568D8C for ; Fri, 18 Dec 2015 09:21:10 +0100 (CET) Content-Disposition: inline In-Reply-To: List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On Fri, Dec 18, 2015 at 01:24:41PM +0530, Santosh Shukla wrote: > >> I guess we have done enough evaluation / investigation that suggest - > >> so to map iopci region to userspace in arch agnostic-way - > >> > >> # either we need to modify kernel > >> - Make sure all the non-x86 arch to support mapping for > >> iopci region (i.e. pci_mmap_page_range). I don;t think its a correct > >> approach though. > >> or > >> - include /dev/ioport char-mem device file who could do > >> more than byte operation, Note that this implementation does not exist > >> in kernel. I could send an RFC to lkml. > > > > Maybe you could propose the two to lkml, to get some feedbacks from > > those kernel/ARM gurus? Please cc me if you do so. > > > > The latter one I already shared old lkml thread, Pl. revisit my v1 0/6 > patch [1] and in that refer [2]. Oops, sorry, a bit busy, that I didn't look at it carefully. My bad, anyway. > Josh has already proposed to lkml but for some reason thread didn't > went far. I can restart that discussion giving dpdk use-case as an > example/ requirement. I had a quick go through of the discussion. Both hpa and Arnd seem to be fine with the ioctl interface on /dev/port. Have you tried that? And if you want to restart it, ioctl might be a better option than /dev/ioport, judging from the discussion. > > And for the former one, I'll have to check with linux-arm why iopci > region not mappable. By grepping kernel source all i could see two > commit - latest one is 415ae101 and older one 1da177e. Both has > nothing to explain why > if (mmap_state == pci_mmap_io) > return -EINVAL; > > Setting pci io region to -EINVAL, should have fundamental reason for > sure. But we'll have to check, for that I could post as a query rather > a patch to lkml. No idea, such check should have been there in the very beginning for some reason. And here is a quote from Arnd: Only powerpc, microblaze, alpha, sparc and xtensa allow users to mmap I/O space, even though a lot of others could. > > Note that dpdk already has out-of-tree implementation for > dom0/xen-case too, it creates special device file which maps pci > resources. so keep one more igb_uio char device so to map iopci region > wont hurt much though! Xen is not a good example here; I'm even not sure it still works or not :) --yliu > [1] http://permalink.gmane.org/gmane.comp.networking.dpdk.devel/29531 > > > --yliu > >> > >> OR keep device file in user space (current approach) > >> Right now Virtio-for-arm patches are blocked on this, let me know if > >> someone has better approach/thought in mind. > >> > >> Thanks. > >> > >> > Then we can try a pci_mmap solution or, as you suggest, an interface in > >> > drivers/char/mem.c > >> >