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

Re: [Xen-devel] [PATCH 0 of 7 V4] amd iommu: support ATS/GPGPU passthru on IOMMUv2 systems



>>> On 20.01.12 at 16:44, Wei Wang <wei.wang2@xxxxxxx> wrote:
> Hi all, this is patch v4.

With the current apparent regression from the previous patch series,
can we ask you to first look into that problem before pushing in more
changes?

Thanks, Jan

> ATS devices with PRI and PASID capabilities can communicate with iommuv2 to 
> perform 
> two level (nested) address translation and demand paging for DMA. To 
> passthru such 
> devices, iommu driver has to beenenabled in guest OS. This patch set adds 
> initial 
> iommu emulation for hvm guests to support ATS device passthru. 
> 
> This patch set should work together with following hw & sw systems:
> 
> * Host system with AMD trinity APU which has enhanced iommu(iommuv2). 
> * AMD Radeon HD 7900 series graphic card.  
> * Linux 3.3 or later which has included iommuv2 kernel driver.
> * AMD catalyst or open source Radeon driver in guest that support HD7900. 
> 
> Most of the works is done by hypervisor. a new guest config parameter
> guest_iommu = {1,0} is introduced to en/disable iommu emulation. 
> 3 hyper-calls are added to support communications among different xen 
> components.
>  
> * iommu_set_msi: used by qemu to inform hypervisor iommu vector number in 
> guest 
> space. Hypervisor needs this vector to inject msi into guest after write PPR 
> log
> entry into guest buffer.
> 
> * iommu_bind_bdf: used by xl to bind virtual bdf of passthru device to 
> machine bdf. 
> IOMMU emulator receives iommu cmd from guest OS and then forwards them  to 
> host 
> iommu. But virtual device id in cmds from guest should be converted into 
> physical 
> id before sending them to real hardware.
> 
> * guest_iommu_set_base: IOMMU MMIO base address is dynamically allocated by
> firmware. This hypercall allows hvmloader to notify hypervisor where the 
> iommu
> mmio pages are.
> 
> I had a picture to explain this better, pls refer to the link.
> 
> http://www.amd64.org/pub/iommuv2.png 
> 
> Thanks,
> Wei
> 
> ======================================================================
> 
> changes in v4:
> * Only tool part in this version, since hypervisor patches have already been 
> committed.
> * rename guest config option from "iommu = {0,1}" to "guest_iommu = {0,1}" 
> * add description into docs/man/xl.cfg.pod.5
> 
> 
> changes in v3:
> * Use xenstore to receive guest iommu configuration instead of adding in a 
> new field in hvm_info_table.
> * Support pci segment in vbdf to mbdf bind.
> * Make hypercalls visible for non-x86 platforms.
> * A few code cleanups according to comments from Jan and Ian.
> 
> Changes in v2:
> * Do not use linked list to access guest iommu tables.
> * Do not parse iommu parameter in libxl_device_model_info again.
> * Fix incorrect logical calculation in patch 11.
> * Fix hypercall definition for non-x86 systems.
> 
> Thanks,
> Wei




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.