From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55488) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZArTW-0002j1-B7 for qemu-devel@nongnu.org; Thu, 02 Jul 2015 23:17:15 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZArTS-0001Kr-Ub for qemu-devel@nongnu.org; Thu, 02 Jul 2015 23:17:14 -0400 Received: from mga11.intel.com ([192.55.52.93]:27002) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZArTS-0001Km-KZ for qemu-devel@nongnu.org; Thu, 02 Jul 2015 23:17:10 -0400 Message-ID: <5595FEB2.2000007@intel.com> Date: Fri, 03 Jul 2015 11:17:06 +0800 From: "Chen, Tiejun" MIME-Version: 1.0 References: <1433493901-9332-1-git-send-email-tiejun.chen@intel.com> <559344E1.6010206@intel.com> In-Reply-To: Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [v8][RESEND][PATCH 00/10] xen: add Intel IGD passthrough List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Stefano Stabellini , mst@redhat.com Cc: qemu-devel@nongnu.org, pbonzini@redhat.com, ehabkost@redhat.com, rth@twiddle.net On 2015/7/2 0:03, Stefano Stabellini wrote: > Aside from a couple of really minor stylistic issues, I think the patch Thanks for your review. > series can go in from my point of view. However it looks like you are > still missing a few acked-by/reviewed-by on the non-xen patches. Just yesterday Michael Acked them :) Note once you're fine to my replies to your previous comments, I'd like to rebase them on the latest and then send out the last revision adding Acked-by with you and Michael. Thanks Tiejun > > On Wed, 1 Jul 2015, Chen, Tiejun wrote: >> Ping... >> >> Thanks >> Tiejun >> >> On 2015/6/5 16:44, Tiejun Chen wrote: >>> 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 | 151 ++++++++++++++++++- >>> 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 | 32 ++++ >>> 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 | 8 +- >>> include/hw/pci/pci-assign.h | 27 ++++ >>> include/hw/xen/xen.h | 1 + >>> qemu-options.hx | 3 + >>> vl.c | 10 ++ >>> 19 files changed, 780 insertions(+), 91 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 >>> >>> >>> >> >