qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: Tiejun Chen <tiejun.chen@intel.com>,
	anthony.perard@citrix.com, stefano.stabellini@eu.citrix.com,
	mst@redhat.com, Kelly.Zytaruk@amd.com
Cc: peter.maydell@linaro.org, xen-devel@lists.xensource.com,
	allen.m.kay@intel.com, qemu-devel@nongnu.org,
	anthony@codemonkey.ws, yang.z.zhang@intel.com
Subject: Re: [Qemu-devel] [v4][PATCH 2/5] xen, gfx passthrough: create intel isa bridge
Date: Tue, 03 Jun 2014 10:46:17 +0200	[thread overview]
Message-ID: <538D8B59.4070105@redhat.com> (raw)
In-Reply-To: <1401440369-29929-3-git-send-email-tiejun.chen@intel.com>

Il 30/05/2014 10:59, Tiejun Chen ha scritto:
> +static int create_pch_isa_bridge(PCIBus *bus, XenHostPCIDevice *hdev)
> +{
> +    struct PCIDevice *dev;
> +
> +    char rid;
> +
> +    dev = pci_create(bus, PCI_DEVFN(0x1f, 0), "intel-pch-isa-bridge");

This is really a huge hack.  You're going to have two ISA bridge devices 
in the machine, with the BIOS imagining that the "good" one is at 1f.0 
and the ACPI tables actually describing the other one.  But the PCI 
device at 1f.0 remains there and a driver in the OS could catch it---not 
just intel_detect_pch---and if you want to add such a hack it should be 
done in the Xen management layers.

If possible, the host bridge patches are even worse.  If you change the 
vendor and device ID while keeping the registers of the i440FX you're 
going to get conflicts or break firmware badly; TianoCore and SeaBIOS 
both expect the normal i440FX vendor and device IDs, for example.

The hardcoded list of offsets is also not acceptable.  It is also not 
clear who is accessing the registers, whether the BIOS or the driver. 
For Linux, a cursory look at the driver shows that it only accesses 
0x50/0x52 of the listed offsets, but also 0x44/0x48 ("MCH BAR"), what 
happens if that code path is encountered?

The main problem with IGD passthrough is the incestuous (and that's a 
euphemism) relationship between the MCH, PCH and graphics driver.  It 
may make sense at the hardware level, but for virtualization it doesn't. 
  A virt-specific driver for GPU command passthrough (with aid from the 
kernel driver, but abstracting all the MCH/PCH-dependent details) would 
make much more sense.

It's really not your fault, there's not much you can do given the 
hardware architecture.  But I don't think this code can be accepted 
upstream, sorry.

Paolo

  parent reply	other threads:[~2014-06-03  8:46 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1401440369-29929-1-git-send-email-tiejun.chen@intel.com>
     [not found] ` <1401440369-29929-2-git-send-email-tiejun.chen@intel.com>
2014-06-02 14:51   ` [Qemu-devel] [v4][PATCH 1/5] xen, gfx passthrough: basic graphics passthrough support Stefano Stabellini
     [not found] ` <1401440369-29929-3-git-send-email-tiejun.chen@intel.com>
2014-06-02 14:52   ` [Qemu-devel] [v4][PATCH 2/5] xen, gfx passthrough: create intel isa bridge Stefano Stabellini
2014-06-03  8:46   ` Paolo Bonzini [this message]
2014-06-03 11:29     ` Stefano Stabellini
2014-06-03 11:39       ` Paolo Bonzini
2014-06-03 11:43         ` Stefano Stabellini
2014-06-03 23:24         ` Tian, Kevin
2014-06-03 11:42       ` George Dunlap
2014-06-03 12:21         ` [Qemu-devel] [Xen-devel] " Sander Eikelenboom
2014-06-03 12:24           ` Paolo Bonzini
2014-06-03 12:38             ` Sander Eikelenboom
2014-06-06  3:06     ` [Qemu-devel] " Zhang, Yang Z
2014-06-06  6:44       ` Paolo Bonzini
     [not found] ` <1401440369-29929-4-git-send-email-tiejun.chen@intel.com>
2014-06-02 14:53   ` [Qemu-devel] [v4][PATCH 3/5] xen, gfx passthrough: support Intel IGD passthrough with VT-D Stefano Stabellini
     [not found] ` <1401440369-29929-5-git-send-email-tiejun.chen@intel.com>
2014-06-02 14:54   ` [Qemu-devel] [v4][PATCH 4/5] xen, gfx passthrough: create host bridge to passthrough Stefano Stabellini
2014-06-02 20:36   ` Michael S. Tsirkin
2014-06-03  1:10     ` Chen, Tiejun
     [not found] ` <1401440369-29929-6-git-send-email-tiejun.chen@intel.com>
2014-06-02 14:56   ` [Qemu-devel] [v4][PATCH 5/5] xen, gfx passthrough: add opregion mapping Stefano Stabellini
2014-06-02 14:59 ` [Qemu-devel] [v4][PATCH 0/5] xen: add Intel IGD passthrough support Stefano Stabellini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=538D8B59.4070105@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=Kelly.Zytaruk@amd.com \
    --cc=allen.m.kay@intel.com \
    --cc=anthony.perard@citrix.com \
    --cc=anthony@codemonkey.ws \
    --cc=mst@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=tiejun.chen@intel.com \
    --cc=xen-devel@lists.xensource.com \
    --cc=yang.z.zhang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).