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

[Xen-devel] Re: [PATCH V4 00/10] Xen PCI Passthrough



I start to be happy with this series; I welcome everyone that has an
opinion on PCI passthrough on Xen to give it a read.

Thanks,

Stefano

On Thu, 17 Nov 2011, Anthony PERARD wrote:
> 
> Hi all,
> 
> This patch series introduces the PCI passthrough for Xen.
> 
> First, we have HostPCIDevice that help to access one PCI device of the host.
> 
> Then, there is an additions in the QEMU code, pci_check_bar_overlap.
> 
> There are also several change in pci_ids and pci_regs.
> 
> Last part, but not least, the PCI passthrough device himself. Cut in 3 parts
> (or file), there is one to take care of the initialisation of a passthrough
> device. The second one handle everything about the config address space, there
> are specifics functions for every config register. The third one is to handle
> MSI.
> 
> There is a patch series on xen-devel (applied to xen-unstable) that add the
> support of setting a PCI passthrough device through QMP from libxl (xen tool
> stack). It is just a call to device_add, with the driver parametter
> hostaddr="0000:00:1b.0".
> 
> 
> Change since v3:
>   - host_pci_get_* can now return an error, and take an extra parameter, a
>     pointer to store the wanted value.
>   - The memory_region for the PCI BAR are handled "manualy" because calling
>     pci_default_write_config was not possible, because the XenPT handle the
>     PCIIORegion it self. This make possible to do a device_remove.
>   - Introduction of PT_ERR and PT_WARN macro to print debug and error 
> messages.
>     Also, these macro as well as PT_LOG will always print the short BDF of the
>     device in the guest point of view.
>   - PT_ERR is print by default (for all error messages).
>   - Some debug/error message have been improve and should be a bit more 
> useful.
>   - hw_error have been removed from the code, and have been replaced by either
>     a call to qemu_system_shudown_request() (that lead to a domain destroy) or
>     a failed in the initialisation of the device.
>   - Now, every patchs should compile with no error.
> 
> 
> Change v2-v3;
>   - in host-pci-device.c:
>     - Return more usefull error code in get_ressource().
>     - Use macro in host_pci_find_ext_cap_offset instead of raw number. But I
>       still not sure if PCI_MAX_EXT_CAP is right, it's result is 480 like it
>       was before, so it's maybe ok.
>   - All use of MSI stuff in two first pci passthrough patch have been removed
>     and move to the last patch.
> 
> 
> Change v1-v2:
>   - fix style issue (checkpatch.pl)
>   - set the original authors, add some missing copyright headers
>   - HostPCIDevice:
>     - introduce HostPCIIORegions (with base_addr, size, flags)
>     - save all flags from ./resource and store it in a separate field.
>     - fix endianess on write
>     - new host_pci_dev_put function
>     - use pci.c like interface host_pci_get/set_byte/word/long (instead of
>       host_pci_read/write_)
>   - compile HostPCIDevice only on linux (as well as xen_pci_passthrough)
>   - introduce apic-msidef.h file.
>   - no more run_one_timer, if a pci device is in the middle of a power
>     transition, just "return an error" in config read/write
>   - use a global var mapped_machine_irq (local to xen_pci_passthrough.c)
>   - add msitranslate and power-mgmt ad qdev property
> 
> 
> 
> Allen Kay (2):
>   Introduce Xen PCI Passthrough, qdevice (1/3)
>   Introduce Xen PCI Passthrough, PCI config space helpers (2/3)
> 
> Anthony PERARD (6):
>   pci_ids: Add INTEL_82599_VF id.
>   pci_regs: Fix value of PCI_EXP_TYPE_RC_EC.
>   pci_regs: Add PCI_EXP_TYPE_PCIE_BRIDGE
>   configure: Introduce --enable-xen-pci-passthrough.
>   Introduce HostPCIDevice to access a pci device on the host.
>   Introduce apic-msidef.h
> 
> Jiang Yunhong (1):
>   Introduce Xen PCI Passthrough, MSI (3/3)
> 
> Yuji Shimada (1):
>   pci.c: Add pci_check_bar_overlap
> 
>  Makefile.target                      |    6 +
>  configure                            |   25 +
>  hw/apic-msidef.h                     |   30 +
>  hw/apic.c                            |   11 +-
>  hw/host-pci-device.c                 |  279 ++++
>  hw/host-pci-device.h                 |   75 +
>  hw/pci.c                             |   47 +
>  hw/pci.h                             |    3 +
>  hw/pci_ids.h                         |    1 +
>  hw/pci_regs.h                        |    3 +-
>  hw/xen_common.h                      |    3 +
>  hw/xen_pci_passthrough.c             |  902 ++++++++++++
>  hw/xen_pci_passthrough.h             |  337 +++++
>  hw/xen_pci_passthrough_config_init.c | 2637 
> ++++++++++++++++++++++++++++++++++
>  hw/xen_pci_passthrough_msi.c         |  678 +++++++++
>  xen-all.c                            |   12 +
>  16 files changed, 5038 insertions(+), 11 deletions(-)
>  create mode 100644 hw/apic-msidef.h
>  create mode 100644 hw/host-pci-device.c
>  create mode 100644 hw/host-pci-device.h
>  create mode 100644 hw/xen_pci_passthrough.c
>  create mode 100644 hw/xen_pci_passthrough.h
>  create mode 100644 hw/xen_pci_passthrough_config_init.c
>  create mode 100644 hw/xen_pci_passthrough_msi.c
> 
> -- 
> Anthony PERARD
> 

_______________________________________________
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®.