linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] VFIO
@ 2012-05-30  5:34 Alex Williamson
  2012-05-30  5:34 ` [PATCH 1/4] vfio: VFIO core Alex Williamson
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Alex Williamson @ 2012-05-30  5:34 UTC (permalink / raw)
  To: benh, aik, david, gregkh
  Cc: joerg.roedel, dwmw2, chrisw, agraf, benve, aafabbri, B08248,
	B07421, avi, konrad.wilk, kvm, qemu-devel, iommu, linux-pci,
	linux-kernel, bhelgaas, ddutile, alex.williamson

This series implements the core VFIO infrastructure, documentation,
an IOMMU backend suitable for x86 usage, and a PCI device driver.
These patches are based on the previous v2 IOMMU Groups + VFIO
patches and are dependent on the previously sent out PCI and IOMMU
groups series found here:

http://marc.info/?l=linux-kernel&m=133835363021384
http://marc.info/?l=linux-kernel&m=133835480021716

As noted in previous postings and the included documentation, VFIO
provides secure, IOMMU protected, userspace access to I/O devices
for use by things like PCI device assignment to virtual machines
in Qemu.  This driver is meant to replace existing KVM device
assignment and hopefully take over much of what UIO does today.

I'm looking for suggestions not only on the code, but on the best
way to get this upstream.  If we can get some initial blessing for
this driver I'd be happy to host a next branch for it or submit it
as a staging driver.  I think Bjorn and Joerg would probably
appreciate and kind of nod that this driver has legs in order to
include the PCI and IOMMU backend support.  Alexey Kardashevskiy
has already posted an initial draft of POWER support for VFIO
giving some validation as a cross architecture solution.

These patches, as well as the PCI support patches and IOMMU group
infrastructure can be found in git here:

git://github.com/awilliam/linux-vfio.git (iommu-group-vfio-next-20120529)

A qemu tree including a vfio-pci driver capable of assigning PCI
devices to Qemu guests can be found here:

git://github.com/awilliam/qemu-vfio.git (iommu-group-vfio)

Thanks, 
Alex

---

Alex Williamson (4):
      vfio: Add PCI device driver
      vfio: Type1 IOMMU implementation
      vfio: Add documentation
      vfio: VFIO core


 Documentation/ioctl/ioctl-number.txt |    1 
 Documentation/vfio.txt               |  315 +++++++
 MAINTAINERS                          |    8 
 drivers/Kconfig                      |    2 
 drivers/Makefile                     |    1 
 drivers/vfio/Kconfig                 |   16 
 drivers/vfio/Makefile                |    3 
 drivers/vfio/pci/Kconfig             |    8 
 drivers/vfio/pci/Makefile            |    4 
 drivers/vfio/pci/vfio_pci.c          |  559 ++++++++++++
 drivers/vfio/pci/vfio_pci_config.c   | 1528 ++++++++++++++++++++++++++++++++++
 drivers/vfio/pci/vfio_pci_intrs.c    |  725 ++++++++++++++++
 drivers/vfio/pci/vfio_pci_private.h  |   91 ++
 drivers/vfio/pci/vfio_pci_rdwr.c     |  269 ++++++
 drivers/vfio/vfio.c                  | 1422 ++++++++++++++++++++++++++++++++
 drivers/vfio/vfio_iommu_type1.c      |  754 +++++++++++++++++
 include/linux/vfio.h                 |  445 ++++++++++
 17 files changed, 6151 insertions(+)
 create mode 100644 Documentation/vfio.txt
 create mode 100644 drivers/vfio/Kconfig
 create mode 100644 drivers/vfio/Makefile
 create mode 100644 drivers/vfio/pci/Kconfig
 create mode 100644 drivers/vfio/pci/Makefile
 create mode 100644 drivers/vfio/pci/vfio_pci.c
 create mode 100644 drivers/vfio/pci/vfio_pci_config.c
 create mode 100644 drivers/vfio/pci/vfio_pci_intrs.c
 create mode 100644 drivers/vfio/pci/vfio_pci_private.h
 create mode 100644 drivers/vfio/pci/vfio_pci_rdwr.c
 create mode 100644 drivers/vfio/vfio.c
 create mode 100644 drivers/vfio/vfio_iommu_type1.c
 create mode 100644 include/linux/vfio.h

^ permalink raw reply	[flat|nested] 6+ messages in thread
* [GIT PULL (PATCH 0/4)] VFIO driver for v3.6
@ 2012-07-25 14:53 Alex Williamson
  2012-07-25 14:53 ` [PATCH 3/4] vfio: Type1 IOMMU implementation Alex Williamson
  0 siblings, 1 reply; 6+ messages in thread
From: Alex Williamson @ 2012-07-25 14:53 UTC (permalink / raw)
  To: torvalds
  Cc: benh, aik, david, gregkh, joerg.roedel, dwmw2, chrisw, agraf,
	benve, aafabbri, B08248, B07421, avi, konrad.wilk, kvm,
	qemu-devel, iommu, linux-pci, linux-kernel, bhelgaas, ddutile,
	alex.williamson

Hi Linus,

This series includes the VFIO userspace driver interface for the
3.6 kernel merge window.  This driver is intended to provide a
secure interface for device access using IOMMU protection for
applications like assignment of physical devices to virtual
machines.  Qemu will be the first user of this interface, enabling
assignment of PCI devices to Qemu guests.  This interface is
intended to eventually replace the x86-specific assignment mechanism
currently available in KVM.  This interface has the advantage of
being more secure, by working with IOMMU groups to ensure device
isolation and providing it's own filtered resource access mechanism,
and also more flexible, in not being x86 or KVM specific (extensions
to enable POWER are already working).

As a new driver, I'm including both the individual patches in email,
as well as a branch to pull from:

git://github.com/awilliam/linux-vfio.git for-linus

This driver is originally the work of Tom Lyon, but has since been
handed over to me and gone through a complete overhaul thanks to the
input from David Gibson, Ben Herrenschmidt, Chris Wright, Joerg
Roedel, and others.  This driver has been available in linux-next for
the last month.  Thanks,

Alex

---

Alex Williamson (4):
      vfio: Add PCI device driver
      vfio: Type1 IOMMU implementation
      vfio: Add documentation
      vfio: VFIO core


 Documentation/ioctl/ioctl-number.txt |    1 
 Documentation/vfio.txt               |  314 +++++++
 MAINTAINERS                          |    8 
 drivers/Kconfig                      |    2 
 drivers/Makefile                     |    1 
 drivers/vfio/Kconfig                 |   16 
 drivers/vfio/Makefile                |    3 
 drivers/vfio/pci/Kconfig             |    8 
 drivers/vfio/pci/Makefile            |    4 
 drivers/vfio/pci/vfio_pci.c          |  579 +++++++++++++
 drivers/vfio/pci/vfio_pci_config.c   | 1540 ++++++++++++++++++++++++++++++++++
 drivers/vfio/pci/vfio_pci_intrs.c    |  740 ++++++++++++++++
 drivers/vfio/pci/vfio_pci_private.h  |   91 ++
 drivers/vfio/pci/vfio_pci_rdwr.c     |  269 ++++++
 drivers/vfio/vfio.c                  | 1420 +++++++++++++++++++++++++++++++
 drivers/vfio/vfio_iommu_type1.c      |  753 +++++++++++++++++
 include/linux/vfio.h                 |  445 ++++++++++
 17 files changed, 6194 insertions(+)
 create mode 100644 Documentation/vfio.txt
 create mode 100644 drivers/vfio/Kconfig
 create mode 100644 drivers/vfio/Makefile
 create mode 100644 drivers/vfio/pci/Kconfig
 create mode 100644 drivers/vfio/pci/Makefile
 create mode 100644 drivers/vfio/pci/vfio_pci.c
 create mode 100644 drivers/vfio/pci/vfio_pci_config.c
 create mode 100644 drivers/vfio/pci/vfio_pci_intrs.c
 create mode 100644 drivers/vfio/pci/vfio_pci_private.h
 create mode 100644 drivers/vfio/pci/vfio_pci_rdwr.c
 create mode 100644 drivers/vfio/vfio.c
 create mode 100644 drivers/vfio/vfio_iommu_type1.c
 create mode 100644 include/linux/vfio.h

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2012-07-25 14:53 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-05-30  5:34 [PATCH 0/4] VFIO Alex Williamson
2012-05-30  5:34 ` [PATCH 1/4] vfio: VFIO core Alex Williamson
2012-05-30  5:34 ` [PATCH 2/4] vfio: Add documentation Alex Williamson
2012-05-30  5:34 ` [PATCH 3/4] vfio: Type1 IOMMU implementation Alex Williamson
2012-05-30  5:34 ` [PATCH 4/4] vfio: Add PCI device driver Alex Williamson
  -- strict thread matches above, loose matches on Subject: below --
2012-07-25 14:53 [GIT PULL (PATCH 0/4)] VFIO driver for v3.6 Alex Williamson
2012-07-25 14:53 ` [PATCH 3/4] vfio: Type1 IOMMU implementation Alex Williamson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).