Message ID | 20191209095002.32194-7-philmd@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | hw/pci-host: Add Kconfig selector for IGD PCIe pass-through | expand |
> -----Original Message----- > From: Xen-devel <xen-devel-bounces@lists.xenproject.org> On Behalf Of > Philippe Mathieu-Daudé > Sent: 09 December 2019 09:50 > To: qemu-devel@nongnu.org > Cc: Thomas Huth <thuth@redhat.com>; Stefano Stabellini > <sstabellini@kernel.org>; Michael S. Tsirkin <mst@redhat.com>; Paul > Durrant <paul@xen.org>; Markus Armbruster <armbru@redhat.com>; Alex > Williamson <alex.williamson@redhat.com>; Marcel Apfelbaum > <marcel.apfelbaum@gmail.com>; Paolo Bonzini <pbonzini@redhat.com>; Anthony > Perard <anthony.perard@citrix.com>; xen-devel@lists.xenproject.org; > Philippe Mathieu-Daudé <philmd@redhat.com> > Subject: [Xen-devel] [PATCH-for-5.0 v3 6/6] hw/pci-host: Add Kconfig entry > to select the IGD Passthrough Host Bridge > > Add the XEN_IGD_PASSTHROUGH Kconfig option. > > Xen build has that option selected by default. Non-Xen builds now > have to select this feature manually. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > v3: Only default with Xen (Alex Williamson) > > I did not used 'depends on XEN' as suggested by Alex but > 'default y if XEN', so one can build XEN without this feature > (for example, on other ARCH than X86). Allowing it to be compiled out for Xen builds is quite reasonable IMO. I don't believe it is widely used. Acked-by: Paul Durrant <paul@xen.org> > --- > hw/pci-host/Kconfig | 5 +++++ > hw/pci-host/Makefile.objs | 2 +- > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig > index b0aa8351c4..24ba8ea046 100644 > --- a/hw/pci-host/Kconfig > +++ b/hw/pci-host/Kconfig > @@ -1,6 +1,11 @@ > config PAM > bool > > +config XEN_IGD_PASSTHROUGH > + bool > + default y if XEN > + select PCI_I440FX > + > config PREP_PCI > bool > select PCI > diff --git a/hw/pci-host/Makefile.objs b/hw/pci-host/Makefile.objs > index fa6d1556c0..9c466fab01 100644 > --- a/hw/pci-host/Makefile.objs > +++ b/hw/pci-host/Makefile.objs > @@ -14,7 +14,7 @@ common-obj-$(CONFIG_VERSATILE_PCI) += versatile.o > common-obj-$(CONFIG_PCI_SABRE) += sabre.o > common-obj-$(CONFIG_FULONG) += bonito.o > common-obj-$(CONFIG_PCI_I440FX) += i440fx.o > -common-obj-$(CONFIG_PCI_I440FX) += xen_igd_pt.o > +common-obj-$(CONFIG_XEN_IGD_PASSTHROUGH) += xen_igd_pt.o > common-obj-$(CONFIG_PCI_EXPRESS_Q35) += q35.o > common-obj-$(CONFIG_PCI_EXPRESS_GENERIC_BRIDGE) += gpex.o > common-obj-$(CONFIG_PCI_EXPRESS_XILINX) += xilinx-pcie.o > -- > 2.21.0 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xenproject.org > https://lists.xenproject.org/mailman/listinfo/xen-devel
On 09/12/19 10:50, Philippe Mathieu-Daudé wrote: > Add the XEN_IGD_PASSTHROUGH Kconfig option. > > Xen build has that option selected by default. Non-Xen builds now > have to select this feature manually. > > Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> > --- > v3: Only default with Xen (Alex Williamson) > > I did not used 'depends on XEN' as suggested by Alex but > 'default y if XEN', so one can build XEN without this feature > (for example, on other ARCH than X86). > --- > hw/pci-host/Kconfig | 5 +++++ > hw/pci-host/Makefile.objs | 2 +- > 2 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig > index b0aa8351c4..24ba8ea046 100644 > --- a/hw/pci-host/Kconfig > +++ b/hw/pci-host/Kconfig > @@ -1,6 +1,11 @@ > config PAM > bool > > +config XEN_IGD_PASSTHROUGH > + bool > + default y if XEN > + select PCI_I440FX Maybe "depends on PCI_I440FX" (so if somebody builds a Xen+KVM, q35-only machine they don't get IGD passthrough). I can do this when applying. Paolo > + > config PREP_PCI > bool > select PCI > diff --git a/hw/pci-host/Makefile.objs b/hw/pci-host/Makefile.objs > index fa6d1556c0..9c466fab01 100644 > --- a/hw/pci-host/Makefile.objs > +++ b/hw/pci-host/Makefile.objs > @@ -14,7 +14,7 @@ common-obj-$(CONFIG_VERSATILE_PCI) += versatile.o > common-obj-$(CONFIG_PCI_SABRE) += sabre.o > common-obj-$(CONFIG_FULONG) += bonito.o > common-obj-$(CONFIG_PCI_I440FX) += i440fx.o > -common-obj-$(CONFIG_PCI_I440FX) += xen_igd_pt.o > +common-obj-$(CONFIG_XEN_IGD_PASSTHROUGH) += xen_igd_pt.o > common-obj-$(CONFIG_PCI_EXPRESS_Q35) += q35.o > common-obj-$(CONFIG_PCI_EXPRESS_GENERIC_BRIDGE) += gpex.o > common-obj-$(CONFIG_PCI_EXPRESS_XILINX) += xilinx-pcie.o >
On 09/12/19 11:10, Durrant, Paul wrote: >> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >> --- >> v3: Only default with Xen (Alex Williamson) >> >> I did not used 'depends on XEN' as suggested by Alex but >> 'default y if XEN', so one can build XEN without this feature >> (for example, on other ARCH than X86). I think what you want is achieved by default y depends on XEN && PC_I440FX ?
On 12/9/19 11:42 AM, Paolo Bonzini wrote: > On 09/12/19 11:10, Durrant, Paul wrote: >>> >>> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> >>> --- >>> v3: Only default with Xen (Alex Williamson) >>> >>> I did not used 'depends on XEN' as suggested by Alex but >>> 'default y if XEN', so one can build XEN without this feature >>> (for example, on other ARCH than X86). > > I think what you want is achieved by > > default y > depends on XEN && PC_I440FX I think so, but with PC_I440FX -> PCI_I440FX ;) It would be cleaner to pass the CONFIG_XEN_PCI_PASSTHROUGH variable to Kconfig and use it (use 'depends on XEN_PCI_PASSTHROUGH'). This can be another step, so if this series looks OK to you so far, do you mind fixing this and the comment in the previous patch noticed by Thomas: - Extract it into a new file, 'hw/pci-host/igd_pt.c'. + Extract it into a new file, 'hw/pci-host/xen_igd_pt.c'. Thanks! Phil.
On 09/12/19 11:56, Philippe Mathieu-Daudé wrote: > > I think so, but with PC_I440FX -> PCI_I440FX ;) > > It would be cleaner to pass the CONFIG_XEN_PCI_PASSTHROUGH variable to > Kconfig and use it (use 'depends on XEN_PCI_PASSTHROUGH'). > > This can be another step, so if this series looks OK to you so far, do > you mind fixing this and the comment in the previous patch noticed by > Thomas: > > - Extract it into a new file, 'hw/pci-host/igd_pt.c'. > + Extract it into a new file, 'hw/pci-host/xen_igd_pt.c'. Sure. Paolo
diff --git a/hw/pci-host/Kconfig b/hw/pci-host/Kconfig index b0aa8351c4..24ba8ea046 100644 --- a/hw/pci-host/Kconfig +++ b/hw/pci-host/Kconfig @@ -1,6 +1,11 @@ config PAM bool +config XEN_IGD_PASSTHROUGH + bool + default y if XEN + select PCI_I440FX + config PREP_PCI bool select PCI diff --git a/hw/pci-host/Makefile.objs b/hw/pci-host/Makefile.objs index fa6d1556c0..9c466fab01 100644 --- a/hw/pci-host/Makefile.objs +++ b/hw/pci-host/Makefile.objs @@ -14,7 +14,7 @@ common-obj-$(CONFIG_VERSATILE_PCI) += versatile.o common-obj-$(CONFIG_PCI_SABRE) += sabre.o common-obj-$(CONFIG_FULONG) += bonito.o common-obj-$(CONFIG_PCI_I440FX) += i440fx.o -common-obj-$(CONFIG_PCI_I440FX) += xen_igd_pt.o +common-obj-$(CONFIG_XEN_IGD_PASSTHROUGH) += xen_igd_pt.o common-obj-$(CONFIG_PCI_EXPRESS_Q35) += q35.o common-obj-$(CONFIG_PCI_EXPRESS_GENERIC_BRIDGE) += gpex.o common-obj-$(CONFIG_PCI_EXPRESS_XILINX) += xilinx-pcie.o
Add the XEN_IGD_PASSTHROUGH Kconfig option. Xen build has that option selected by default. Non-Xen builds now have to select this feature manually. Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> --- v3: Only default with Xen (Alex Williamson) I did not used 'depends on XEN' as suggested by Alex but 'default y if XEN', so one can build XEN without this feature (for example, on other ARCH than X86). --- hw/pci-host/Kconfig | 5 +++++ hw/pci-host/Makefile.objs | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-)