From mboxrd@z Thu Jan 1 00:00:00 1970 From: Avi Kivity Subject: Re: [PATCH 0/1] uio_pci_generic: extensions to allow access for non-privileged processes Date: Thu, 01 Apr 2010 12:09:09 +0300 Message-ID: <4BB462B5.1030402@redhat.com> References: <201003311708.38961.pugs@lyon-about.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: kvm@vger.kernel.org, linux-kernel@vger.kernel.org, mst@redhat.com To: Tom Lyon Return-path: In-Reply-To: <201003311708.38961.pugs@lyon-about.com> Sender: linux-kernel-owner@vger.kernel.org List-Id: kvm.vger.kernel.org On 04/01/2010 03:08 AM, Tom Lyon wrote: > uio_pci_generic has previously been discussed on the KVM list, but this patch > has nothing to do with KVM, so it is also going to LKML. > (needs to go to lkml even if it was for kvm) > The point of this patch is to beef up the uio_pci_generic driver so that a > non-privileged user process can run a user level driver for most PCIe > devices. This can only be safe if there is an IOMMU in the system with > per-device domains. Privileged users (CAP_SYS_RAWIO) are allowed if there is > no IOMMU. > > Specifically, I seek to allow low-latency user level network drivers (non > tcp/ip) which directly access SR-IOV style virtual network adapters, for use > with packages such as OpenMPI. > > Key areas of change: > - ioctl extensions to allow registration and dma mapping of memory regions, > with lock accounting > - support for mmu notifier driven de-mapping > Note that current iommus/devices don't support restart-on-fault dma, so userspace drivers will have to lock memory so that it is not swapped out. I don't think this prevents page migration, though. > - support for MSI and MSI-X interrupts (the intel 82599 VFs support only > MSI-X) > How does a userspace program receive those interrupts? > - allowing interrupt enabling and device register mapping all > through /dev/uio* so that permissions may be granted just by chmod > on /dev/uio* > That was always broken with the sysfs interface. -- error compiling committee.c: too many arguments to function