From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40917) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aNczW-0001Tx-G5 for qemu-devel@nongnu.org; Mon, 25 Jan 2016 03:59:19 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aNczS-00006e-LE for qemu-devel@nongnu.org; Mon, 25 Jan 2016 03:59:18 -0500 Received: from mx1.redhat.com ([209.132.183.28]:43925) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aNczS-00006Y-Fd for qemu-devel@nongnu.org; Mon, 25 Jan 2016 03:59:14 -0500 Message-ID: <1453712350.22422.31.camel@redhat.com> From: Gerd Hoffmann Date: Mon, 25 Jan 2016 09:59:10 +0100 In-Reply-To: <20160123145152.GC4218@thinpad.lan.raisama.net> References: <1451994098-6972-1-git-send-email-kraxel@redhat.com> <1451994098-6972-5-git-send-email-kraxel@redhat.com> <20160123145152.GC4218@thinpad.lan.raisama.net> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 Subject: Re: [Qemu-devel] [PATCH v3 04/11] igd: switch TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE to realize List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Eduardo Habkost Cc: igvt-g@ml01.01.org, xen-devel@lists.xensource.com, Stefano Stabellini , qemu-devel@nongnu.org, Cao jin , vfio-users@redhat.com Hi, > > static void igd_passthrough_i440fx_class_init(ObjectClass *klass, void= *data) > > @@ -78,7 +77,7 @@ static void igd_passthrough_i440fx_class_init(ObjectC= lass *klass, void *data) > > DeviceClass *dc =3D DEVICE_CLASS(klass); > > PCIDeviceClass *k =3D PCI_DEVICE_CLASS(klass); > > =20 > > - k->init =3D igd_pt_i440fx_initfn; > > + k->realize =3D igd_pt_i440fx_realize; >=20 > I am trying to understand how this have ever worked before: >=20 > * PCIDeviceClass::init is called by pci_default_realize() > (default value for PCIDeviceClass::realize) > * i440fx_class_init() overrides PCIDeviceClass::realize > to i440fx_realize() >=20 > So, when exactly was igd_pt_i440fx_realize() being called, before > this series? It simply didn't? I suspect this got ported over from the qemu-xen tree, but wasn't really tested and also not adapted to commit "9af21db pci: Trivial device model conversions to realize". So this patch actually is yet another bugfix ... Current test status of this series (by Hao) is this: * newer linux intel drivers work just fine without chipset tweaks. * older linux intel drivers and windows guests don't work even with all the fixes in this series. So applying the series doesn't improve things at all (code cleanups aside). My current plan to go forward is: (a) get test hardware (wip atm). (b) go figure what is really needed, lots of testing. (c) rework and repost series. cheers, Gerd From mboxrd@z Thu Jan 1 00:00:00 1970 From: Gerd Hoffmann Subject: Re: [PATCH v3 04/11] igd: switch TYPE_IGD_PASSTHROUGH_I440FX_PCI_DEVICE to realize Date: Mon, 25 Jan 2016 09:59:10 +0100 Message-ID: <1453712350.22422.31.camel@redhat.com> References: <1451994098-6972-1-git-send-email-kraxel@redhat.com> <1451994098-6972-5-git-send-email-kraxel@redhat.com> <20160123145152.GC4218@thinpad.lan.raisama.net> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Return-path: In-Reply-To: <20160123145152.GC4218@thinpad.lan.raisama.net> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org Sender: qemu-devel-bounces+gceq-qemu-devel=gmane.org@nongnu.org To: Eduardo Habkost Cc: igvt-g@ml01.01.org, xen-devel@lists.xensource.com, Stefano Stabellini , qemu-devel@nongnu.org, Cao jin , vfio-users@redhat.com List-Id: xen-devel@lists.xenproject.org Hi, > > static void igd_passthrough_i440fx_class_init(ObjectClass *klass, void= *data) > > @@ -78,7 +77,7 @@ static void igd_passthrough_i440fx_class_init(ObjectC= lass *klass, void *data) > > DeviceClass *dc =3D DEVICE_CLASS(klass); > > PCIDeviceClass *k =3D PCI_DEVICE_CLASS(klass); > > =20 > > - k->init =3D igd_pt_i440fx_initfn; > > + k->realize =3D igd_pt_i440fx_realize; >=20 > I am trying to understand how this have ever worked before: >=20 > * PCIDeviceClass::init is called by pci_default_realize() > (default value for PCIDeviceClass::realize) > * i440fx_class_init() overrides PCIDeviceClass::realize > to i440fx_realize() >=20 > So, when exactly was igd_pt_i440fx_realize() being called, before > this series? It simply didn't? I suspect this got ported over from the qemu-xen tree, but wasn't really tested and also not adapted to commit "9af21db pci: Trivial device model conversions to realize". So this patch actually is yet another bugfix ... Current test status of this series (by Hao) is this: * newer linux intel drivers work just fine without chipset tweaks. * older linux intel drivers and windows guests don't work even with all the fixes in this series. So applying the series doesn't improve things at all (code cleanups aside). My current plan to go forward is: (a) get test hardware (wip atm). (b) go figure what is really needed, lots of testing. (c) rework and repost series. cheers, Gerd