iommu.lists.linux-foundation.org archive mirror
 help / color / mirror / Atom feed
* [RFC] virtio-iommu version 0.5
@ 2017-10-23  9:32 Jean-Philippe Brucker
       [not found] ` <20171023093241.20113-1-jean-philippe.brucker-5wv7dgnIgG8@public.gmane.org>
  2017-12-01 15:46 ` Jean-Philippe Brucker
  0 siblings, 2 replies; 10+ messages in thread
From: Jean-Philippe Brucker @ 2017-10-23  9:32 UTC (permalink / raw)
  To: iommu, kvm, virtualization, virtio-dev
  Cc: will.deacon, robin.murphy, lorenzo.pieralisi, mst, jasowang,
	marc.zyngier, eric.auger, eric.auger.pro, bharat.bhushan, peterx,
	kevin.tian, Jayachandran.Nair, ashok.raj

This is version 0.5 of the virtio-iommu specification, the paravirtualized
IOMMU. This version addresses feedback from v0.4 and adds an event virtqueue.
Please find the specification, LaTeX sources and pdf, at:
git://linux-arm.org/virtio-iommu.git viommu/v0.5
http://linux-arm.org/git?p=virtio-iommu.git;a=blob;f=dist/v0.5/virtio-iommu-v0.5.pdf

A detailed changelog since v0.4 follows. You can find the pdf diff at:
http://linux-arm.org/git?p=virtio-iommu.git;a=blob;f=dist/diffs/virtio-iommu-pdf-diff-v0.4-v0.5.pdf

* Add an event virtqueue for the device to report translation faults to
  the driver. For the moment only unrecoverable faults are available but
  future versions will extend it.
* Simplify PROBE request by removing the ack part, and flattening RESV
  properties.
* Rename "address space" to "domain". The change might seem futile but
  allows to introduce PASIDs and other features cleanly in the next
  versions. In the same vein, the few remaining "device" occurrences were
  replaced by "endpoint", to avoid any confusion with "the device"
  referring to the virtio device across the document.
* Add implementation notes for RESV_MEM properties.
* Update ACPI table definition.
* Fix typos and clarify a few things.

I will publish the Linux driver for v0.5 shortly. Then for next versions
I'll focus on optimizations and adding support for hardware acceleration.

Existing implementations are simple and can certainly be optimized, even
without architectural changes. But the architecture itself can also be
improved in a number of ways. Currently it is designed to work well with
VFIO. However, having explicit MAP requests is less efficient* than page
tables for emulated and PV endpoints, and the current architecture doesn't
address this. Binding page tables is an obvious way to improve throughput
in that case, but we can explore cleverer (and possibly simpler) ways to
do it.

So first we'll work on getting the base device and driver merged, then
we'll analyze and compare several ideas for improving performance.

Thanks,
Jean

* I have yet to study this behaviour, and would be interested in any
prior art on the subject of analyzing devices DMA patterns (virtio and
others)

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

end of thread, other threads:[~2017-12-01 15:46 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-10-23  9:32 [RFC] virtio-iommu version 0.5 Jean-Philippe Brucker
     [not found] ` <20171023093241.20113-1-jean-philippe.brucker-5wv7dgnIgG8@public.gmane.org>
2017-10-24  6:27   ` Linu Cherian
2017-10-24  8:37     ` Jean-Philippe Brucker
2017-10-24 16:58       ` Linu Cherian
2017-10-25  7:07         ` Linu Cherian
2017-10-25  9:07           ` Jean-Philippe Brucker
     [not found]             ` <6e5c3a23-9e00-1936-f80c-085faf42c420-5wv7dgnIgG8@public.gmane.org>
2017-10-25  9:26               ` Linu Cherian
2017-10-25 11:05               ` Linu Cherian
2017-10-25 12:05                 ` Jean-Philippe Brucker
2017-12-01 15:46 ` Jean-Philippe Brucker

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).