From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:42910) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFLA8-0007Lf-JR for qemu-devel@nongnu.org; Wed, 15 Jul 2015 07:47:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZFLA3-0000CQ-JL for qemu-devel@nongnu.org; Wed, 15 Jul 2015 07:47:44 -0400 Received: from smtp.citrix.com ([66.165.176.89]:60555) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZFLA3-0000Bj-BN for qemu-devel@nongnu.org; Wed, 15 Jul 2015 07:47:39 -0400 Date: Wed, 15 Jul 2015 12:46:29 +0100 From: Stefano Stabellini In-Reply-To: <1436938670-7677-1-git-send-email-tiejun.chen@intel.com> Message-ID: References: <1436938670-7677-1-git-send-email-tiejun.chen@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="US-ASCII" Subject: Re: [Qemu-devel] [v10][PATCH 00/10] xen: add Intel IGD passthrough List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Tiejun Chen Cc: ehabkost@redhat.com, mst@redhat.com, stefano.stabellini@eu.citrix.com, qemu-devel@nongnu.org, pbonzini@redhat.com, rth@twiddle.net Thanks Tiejun, the patch series looks OK to me now. It looks like it has all the required acks. Michael, are you OK with it? If so, should I add it to my queue, or do you want to add it to yours? On Wed, 15 Jul 2015, Tiejun Chen wrote: > v10: > > * Don't extern igd_passthrough_isa_bridge_create() in the > include/hw/xen/xen.h file. Instead, move inside the > include/hw/i386/pc.h file in patch #7 > > v9: > > * Rebase on the latest > * Inside patch #8, move is_igd_vga_passthrough(dev)) from > xen_igd_passthrough_isa_bridge_create() into xen_pt_initfn(). > * Inside patch #9, simplify pc_xen_hvm_init_pci() > * Michael acked them on pc side > * Stefano ackes then on xen side > > v8: > > * Rebase on the latest qemu tree > * Cleanup one xen leftover in patch #3 > > v7: > > * Instead of "-gfx_passthru" we'd like to make that a machine > option, "-machine xxx,igd-passthru=on"" > * try to make something as common shared by others like KvmGT in > the future > * Just read those real value from host bridge pci > configuration space when create host bridge then put in dev->config. > > v6: > > * Drop introducing a new machine specific to IGD passthrough > * Try to share some codes from KVM stuff in qemu to retrive VGA BIOS > * Currently IGD drivers always need to access PCH by 1f.0. But we > don't want to poke that directly to get ID, and although in real > world different GPU should have different PCH. But actually the > different PCH DIDs likely map to different PCH SKUs. We do the > same thing for the GPU. For PCH, the different SKUs are going to > be all the same silicon design and implementation, just different > features turn on and off with fuses. The SW interfaces should be > consistent across all SKUs in a given family (eg LPT). But just > same features may not be supported. > > Most of these different PCH features probably don't matter to the > Gfx driver, but obviously any difference in display port connections > will so it should be fine with any PCH in case of passthrough. > > So currently use one PCH version, 0x8c4e, to cover all HSW(Haswell) > scenarios, 0x9cc3 for BDW(Broadwell). > * Drop igd write ops since its fine to emulate that, and we also shrink > those igd read ops as necessary. > * Rebase and cleanup all patches. > > v5: > > * Simplify to make sure its really inherited from the standard one in patch #3 > * Then drop the original patch #3 > > v4: > > * Rebase on latest tree > * Drop patch #2 > * Regenerate patches after Michael introduce patch #1 > * We need to use this pci_type as a index to reuse I440FX_PCI_DEVICE() > * Test: boot with a preinstalled winxp > ./i386-softmmu/qemu-system-i386 -hda winxp-32.img -m 2560 -boot c -machine pc > > v3: > > * Drop patch #4 > * Add one patch #1 from Michael > * Rebase > * In./i386-softmmu/qemu-system-i386 -hda test.img -m 2560 -boot c -machine pc > > v2: > > * Fix some coding style > * New patch to separate i440fx_init > * Just add prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough > * Based on patch #2 to regenerate > * Unify prefix with XEN_IGD_PASSTHROUGH/xen_igd_passthrough like patch #3 > * Test: boot with a preinstalled ubuntu 14.04 > ./i386-softmmu/qemu-system-i386 -hda test.img -m 2560 -boot c -machine pc > > As we discussed we need to create a separate machine to support current > IGD passthrough. > > ---------------------------------------------------------------- > Michael S. Tsirkin (1): > i440fx: make types configurable at run-time > > Tiejun Chen (9): > pc_init1: pass parameters just with types > piix: create host bridge to passthrough > hw/pci-assign: split pci-assign.c > xen, gfx passthrough: basic graphics passthrough support > xen, gfx passthrough: retrieve VGA BIOS to work > igd gfx passthrough: create a isa bridge > xen, gfx passthrough: register a isa bridge > xen, gfx passthrough: register host bridge specific to passthrough > xen, gfx passthrough: add opregion mapping > > hw/core/machine.c | 20 +++ > hw/i386/Makefile.objs | 1 + > hw/i386/kvm/pci-assign.c | 82 +--------- > hw/i386/pc_piix.c | 139 ++++++++++++++++- > hw/i386/pci-assign-load-rom.c | 93 ++++++++++++ > hw/pci-host/piix.c | 91 +++++++++++- > hw/xen/Makefile.objs | 1 + > hw/xen/xen-host-pci-device.c | 5 + > hw/xen/xen-host-pci-device.h | 1 + > hw/xen/xen_pt.c | 36 +++++ > hw/xen/xen_pt.h | 21 ++- > hw/xen/xen_pt_config_init.c | 51 ++++++- > hw/xen/xen_pt_graphics.c | 272 ++++++++++++++++++++++++++++++++++ > include/hw/boards.h | 1 + > include/hw/i386/pc.h | 9 +- > include/hw/pci/pci-assign.h | 27 ++++ > qemu-options.hx | 3 + > vl.c | 10 ++ > 19 files changed, 773 insertions(+), 92 deletions(-) > create mode 100644 hw/i386/pci-assign-load-rom.c > create mode 100644 hw/xen/xen_pt_graphics.c > create mode 100644 include/hw/pci/pci-assign.h > > Thanks > Tiejun >