* [Qemu-devel] [PATCH qemu v17 00/12] spapr: vfio: Enable Dynamic DMA windows (DDW)
@ 2016-06-01 8:57 Alexey Kardashevskiy
0 siblings, 0 replies; 2+ messages in thread
From: Alexey Kardashevskiy @ 2016-06-01 8:57 UTC (permalink / raw)
To: qemu-devel
Cc: Alexey Kardashevskiy, qemu-ppc, Alexander Graf, David Gibson,
Alex Williamson
Each Partitionable Endpoint (IOMMU group) has an address range on a PCI bus
where devices are allowed to do DMA. These ranges are called DMA windows.
By default, there is a single DMA window, 1 or 2GB big, mapped at zero
on a PCI bus.
PAPR defines a DDW RTAS API which allows pseries guests
querying the hypervisor about DDW support and capabilities (page size mask
for now). A pseries guest may request an additional (to the default)
DMA windows using this RTAS API.
The existing pseries Linux guests request an additional window as big as
the guest RAM and map the entire guest window which effectively creates
direct mapping of the guest memory to a PCI bus.
This patchset reworks PPC64 IOMMU code and adds necessary structures
to support big windows on pseries.
This patchset is based on David's ppc-for-2.7-20160531 tag.
Please comment. Thanks!
Alexey Kardashevskiy (12):
vmstate: Define VARRAY with VMS_ALLOC
spapr_iommu: Introduce "enabled" state for TCE table
spapr_iommu: Migrate full state
spapr_iommu: Add root memory region
spapr_pci: Reset DMA config on PHB reset
memory: Add reporting of supported page sizes
vfio: spapr: Add DMA memory preregistering (SPAPR IOMMU v2)
spapr_pci: Add and export DMA resetting helper
vfio: Add host side DMA window capabilities
vfio/spapr: Create DMA window dynamically (SPAPR IOMMU v2)
spapr_pci/spapr_pci_vfio: Support Dynamic DMA Windows (DDW)
spapr_iommu, vfio, memory: Notify IOMMU about starting/stopping
listening
hw/ppc/Makefile.objs | 1 +
hw/ppc/spapr.c | 5 +
hw/ppc/spapr_iommu.c | 160 +++++++++++++++++++----
hw/ppc/spapr_pci.c | 96 ++++++++++----
hw/ppc/spapr_rtas_ddw.c | 293 ++++++++++++++++++++++++++++++++++++++++++
hw/ppc/spapr_vio.c | 8 +-
hw/vfio/Makefile.objs | 1 +
hw/vfio/common.c | 174 +++++++++++++++++++------
hw/vfio/spapr.c | 207 +++++++++++++++++++++++++++++
include/exec/memory.h | 26 +++-
include/hw/pci-host/spapr.h | 10 +-
include/hw/ppc/spapr.h | 30 ++++-
include/hw/vfio/vfio-common.h | 19 ++-
include/migration/vmstate.h | 10 ++
memory.c | 26 +++-
trace-events | 10 ++
16 files changed, 961 insertions(+), 115 deletions(-)
create mode 100644 hw/ppc/spapr_rtas_ddw.c
create mode 100644 hw/vfio/spapr.c
--
2.5.0.rc3
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [Qemu-devel] [PATCH qemu v17 00/12] spapr: vfio: Enable Dynamic DMA windows (DDW)
[not found] <201606010902.u51901oX007518@mx0a-001b2d01.pphosted.com>
@ 2016-06-02 3:36 ` David Gibson
0 siblings, 0 replies; 2+ messages in thread
From: David Gibson @ 2016-06-02 3:36 UTC (permalink / raw)
To: Alexey Kardashevskiy
Cc: qemu-devel, qemu-ppc, Alexander Graf, Alex Williamson
[-- Attachment #1: Type: text/plain, Size: 2943 bytes --]
On Wed, Jun 01, 2016 at 06:57:31PM +1000, Alexey Kardashevskiy wrote:
> Each Partitionable Endpoint (IOMMU group) has an address range on a PCI bus
> where devices are allowed to do DMA. These ranges are called DMA windows.
> By default, there is a single DMA window, 1 or 2GB big, mapped at zero
> on a PCI bus.
>
> PAPR defines a DDW RTAS API which allows pseries guests
> querying the hypervisor about DDW support and capabilities (page size mask
> for now). A pseries guest may request an additional (to the default)
> DMA windows using this RTAS API.
> The existing pseries Linux guests request an additional window as big as
> the guest RAM and map the entire guest window which effectively creates
> direct mapping of the guest memory to a PCI bus.
>
> This patchset reworks PPC64 IOMMU code and adds necessary structures
> to support big windows on pseries.
>
> This patchset is based on David's ppc-for-2.7-20160531 tag.
>
>
> Please comment. Thanks!
I've merged 1-5. 6 needs some sort of ack from Paolo. Continuing to
review the remainder.
>
>
> Alexey Kardashevskiy (12):
> vmstate: Define VARRAY with VMS_ALLOC
> spapr_iommu: Introduce "enabled" state for TCE table
> spapr_iommu: Migrate full state
> spapr_iommu: Add root memory region
> spapr_pci: Reset DMA config on PHB reset
> memory: Add reporting of supported page sizes
> vfio: spapr: Add DMA memory preregistering (SPAPR IOMMU v2)
> spapr_pci: Add and export DMA resetting helper
> vfio: Add host side DMA window capabilities
> vfio/spapr: Create DMA window dynamically (SPAPR IOMMU v2)
> spapr_pci/spapr_pci_vfio: Support Dynamic DMA Windows (DDW)
> spapr_iommu, vfio, memory: Notify IOMMU about starting/stopping
> listening
>
> hw/ppc/Makefile.objs | 1 +
> hw/ppc/spapr.c | 5 +
> hw/ppc/spapr_iommu.c | 160 +++++++++++++++++++----
> hw/ppc/spapr_pci.c | 96 ++++++++++----
> hw/ppc/spapr_rtas_ddw.c | 293 ++++++++++++++++++++++++++++++++++++++++++
> hw/ppc/spapr_vio.c | 8 +-
> hw/vfio/Makefile.objs | 1 +
> hw/vfio/common.c | 174 +++++++++++++++++++------
> hw/vfio/spapr.c | 207 +++++++++++++++++++++++++++++
> include/exec/memory.h | 26 +++-
> include/hw/pci-host/spapr.h | 10 +-
> include/hw/ppc/spapr.h | 30 ++++-
> include/hw/vfio/vfio-common.h | 19 ++-
> include/migration/vmstate.h | 10 ++
> memory.c | 26 +++-
> trace-events | 10 ++
> 16 files changed, 961 insertions(+), 115 deletions(-)
> create mode 100644 hw/ppc/spapr_rtas_ddw.c
> create mode 100644 hw/vfio/spapr.c
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 819 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-06-02 3:37 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <201606010902.u51901oX007518@mx0a-001b2d01.pphosted.com>
2016-06-02 3:36 ` [Qemu-devel] [PATCH qemu v17 00/12] spapr: vfio: Enable Dynamic DMA windows (DDW) David Gibson
2016-06-01 8:57 Alexey Kardashevskiy
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).