Re: [PATCH 0/1] uio_pci_generic: extensions to allow access for non-privileged processes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux