qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: "Zhang, Yang Z" <yang.z.zhang@intel.com>,
	"Chen, Tiejun" <tiejun.chen@intel.com>,
	"anthony.perard@citrix.com" <anthony.perard@citrix.com>,
	"stefano.stabellini@eu.citrix.com"
	<stefano.stabellini@eu.citrix.com>,
	"mst@redhat.com" <mst@redhat.com>,
	"Kelly.Zytaruk@amd.com" <Kelly.Zytaruk@amd.com>
Cc: "peter.maydell@linaro.org" <peter.maydell@linaro.org>,
	"xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
	"Kay, Allen M" <allen.m.kay@intel.com>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"anthony@codemonkey.ws" <anthony@codemonkey.ws>
Subject: Re: [Qemu-devel] [v4][PATCH 2/5] xen, gfx passthrough: create intel isa bridge
Date: Fri, 06 Jun 2014 08:44:51 +0200	[thread overview]
Message-ID: <53916363.8080706@redhat.com> (raw)
In-Reply-To: <A9667DDFB95DB7438FA9D7D576C3D87E0AAE2B0B@SHSMSX104.ccr.corp.intel.com>

Il 06/06/2014 05:06, Zhang, Yang Z ha scritto:
> Paolo Bonzini wrote on 2014-06-03:
>> 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
>
> Definitely. So how about expose a fake device at 00:1f.0 but not Isa Bridge? I have discussion with gfx driver developer, it is ok for them to check the device on 00:1f.0 no matter what device it is.

That would be slightly better.

>> 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.
>
> I only see the class id is changed but not vendor and device id.

Yes, and the class ID is a typo probably.

But when the guest reads the vendor and device ID, igd_pci_read passes 
it through.  So effectively it changes, if I read the code correctly.

Paolo

>>
>> 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?
>
> Will have a double check.
>
>>
>> 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.
>
> Agree. But it is too hard.
>
>>
>> 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
>
>
> Best regards,
> Yang
>
>
>
>

      reply	other threads:[~2014-06-06  6:45 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-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-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
     [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-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
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 [this message]

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=53916363.8080706@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).