[Xen-devel] [PATCH for-2.10 1/2] hw/acpi: Call acpi_set_pci_info when no ACPI tables needed
To do PCI passthrough with Xen, the property acpi-pcihp-bsel needs to be set, but this was done only when ACPI tables are built which is not needed for a Xen guest. The need for the property starts with commit "pc: pcihp: avoid adding ACPI_PCIHP_PROP_BSEL twice" (f0c9d64a68b776374ec4732424a3e27753ce37b6). Set pci info before checking for the needs to build ACPI tables. Reported-by: Sander Eikelenboom Tested-by: Sander Eikelenboom Signed-off-by: Anthony PERARD --- In this patch rather than always calling acpi_set_pci_info() when acpi_setup() is called, we could check first for acpi_enabled? (which is true for Xen.) This patch would be a canditade to backport to 2.9. CC: Stefano Stabellini CC: Bruce Rogers --- hw/i386/acpi-build.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c index 98dd424678..e1b7797408 100644 --- a/hw/i386/acpi-build.c +++ b/hw/i386/acpi-build.c @@ -2871,6 +2871,8 @@ void acpi_setup(void) AcpiBuildState *build_state; Object *vmgenid_dev; +acpi_set_pci_info(); + if (!pcms->fw_cfg) { ACPI_BUILD_DPRINTF("No fw cfg. Bailing out.\n"); return; @@ -2888,8 +2890,6 @@ void acpi_setup(void) build_state = g_malloc0(sizeof *build_state); -acpi_set_pci_info(); - acpi_build_tables_init(&tables); acpi_build(&tables, MACHINE(pcms)); -- Anthony PERARD ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH for-2.10 1/2] hw/acpi: Call acpi_set_pci_info when no ACPI tables needed
On Fri, Aug 11, 2017 at 04:11:37PM +0100, Anthony PERARD wrote: > To do PCI passthrough with Xen, the property acpi-pcihp-bsel needs to be > set, but this was done only when ACPI tables are built which is not > needed for a Xen guest. The need for the property starts with commit > "pc: pcihp: avoid adding ACPI_PCIHP_PROP_BSEL twice" > (f0c9d64a68b776374ec4732424a3e27753ce37b6). > > Set pci info before checking for the needs to build ACPI tables. > > Reported-by: Sander Eikelenboom > Tested-by: Sander Eikelenboom > Signed-off-by: Anthony PERARD I am worried that Xen will come to depend on specific assignment of bsel which isn't guaranteed. Thoughts on how to avoid that? > > --- > In this patch rather than always calling acpi_set_pci_info() when > acpi_setup() is called, we could check first for acpi_enabled? (which is > true for Xen.) Yes, please change it like this. Also, please add a comment explainging what it does. Thanks! > > This patch would be a canditade to backport to 2.9. > > CC: Stefano Stabellini > CC: Bruce Rogers > --- > hw/i386/acpi-build.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c > index 98dd424678..e1b7797408 100644 > --- a/hw/i386/acpi-build.c > +++ b/hw/i386/acpi-build.c > @@ -2871,6 +2871,8 @@ void acpi_setup(void) > AcpiBuildState *build_state; > Object *vmgenid_dev; > > +acpi_set_pci_info(); > + > if (!pcms->fw_cfg) { > ACPI_BUILD_DPRINTF("No fw cfg. Bailing out.\n"); > return; > @@ -2888,8 +2890,6 @@ void acpi_setup(void) > > build_state = g_malloc0(sizeof *build_state); > > -acpi_set_pci_info(); > - > acpi_build_tables_init(&tables); > acpi_build(&tables, MACHINE(pcms)); > > -- > Anthony PERARD ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH for-2.10 1/2] hw/acpi: Call acpi_set_pci_info when no ACPI tables needed
On Fri, Aug 11, 2017 at 08:18:28PM +0300, Michael S. Tsirkin wrote: > On Fri, Aug 11, 2017 at 04:11:37PM +0100, Anthony PERARD wrote: > > To do PCI passthrough with Xen, the property acpi-pcihp-bsel needs to be > > set, but this was done only when ACPI tables are built which is not > > needed for a Xen guest. The need for the property starts with commit > > "pc: pcihp: avoid adding ACPI_PCIHP_PROP_BSEL twice" > > (f0c9d64a68b776374ec4732424a3e27753ce37b6). > > > > Set pci info before checking for the needs to build ACPI tables. > > > > Reported-by: Sander Eikelenboom > > Tested-by: Sander Eikelenboom > > Signed-off-by: Anthony PERARD > > I am worried that Xen will come to depend on specific > assignment of bsel which isn't guaranteed. Thoughts on > how to avoid that? Is it possible to have a different BSEL than 0 with PIIX ? Also, I don't known if having more than on PCI bus is going to work on Xen, there is nothing in our ACPI tables beyond _SB.PCI0, and nothing to use a different BSEL. > > > > --- > > In this patch rather than always calling acpi_set_pci_info() when > > acpi_setup() is called, we could check first for acpi_enabled? (which is > > true for Xen.) > > Yes, please change it like this. Also, please add > a comment explainging what it does. Will do. -- Anthony PERARD ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH for-2.10 1/2] hw/acpi: Call acpi_set_pci_info when no ACPI tables needed
On Mon, Aug 14, 2017 at 03:55:50PM +0100, Anthony PERARD wrote: > On Fri, Aug 11, 2017 at 08:18:28PM +0300, Michael S. Tsirkin wrote: > > On Fri, Aug 11, 2017 at 04:11:37PM +0100, Anthony PERARD wrote: > > > To do PCI passthrough with Xen, the property acpi-pcihp-bsel needs to be > > > set, but this was done only when ACPI tables are built which is not > > > needed for a Xen guest. The need for the property starts with commit > > > "pc: pcihp: avoid adding ACPI_PCIHP_PROP_BSEL twice" > > > (f0c9d64a68b776374ec4732424a3e27753ce37b6). > > > > > > Set pci info before checking for the needs to build ACPI tables. > > > > > > Reported-by: Sander Eikelenboom > > > Tested-by: Sander Eikelenboom > > > Signed-off-by: Anthony PERARD > > > > I am worried that Xen will come to depend on specific > > assignment of bsel which isn't guaranteed. Thoughts on > > how to avoid that? > > Is it possible to have a different BSEL than 0 with PIIX ? With PCI to PCI bridges, yes. > Also, I don't known if having more than on PCI bus is going to work on > Xen, there is nothing in our ACPI tables beyond _SB.PCI0, and nothing to > use a different BSEL. My worry is someone might decide to implement hotplug for pci to pci bridges on Xen. If doing that, it's important to use the qemu supplied acpi tables. > > > > > > --- > > > In this patch rather than always calling acpi_set_pci_info() when > > > acpi_setup() is called, we could check first for acpi_enabled? (which is > > > true for Xen.) > > > > Yes, please change it like this. Also, please add > > a comment explainging what it does. > > Will do. > > -- > Anthony PERARD ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH for-2.10 1/2] hw/acpi: Call acpi_set_pci_info when no ACPI tables needed
On Mon, Aug 14, 2017 at 06:53:14PM +0300, Michael S. Tsirkin wrote: > On Mon, Aug 14, 2017 at 03:55:50PM +0100, Anthony PERARD wrote: > > On Fri, Aug 11, 2017 at 08:18:28PM +0300, Michael S. Tsirkin wrote: > > > On Fri, Aug 11, 2017 at 04:11:37PM +0100, Anthony PERARD wrote: > > > > To do PCI passthrough with Xen, the property acpi-pcihp-bsel needs to be > > > > set, but this was done only when ACPI tables are built which is not > > > > needed for a Xen guest. The need for the property starts with commit > > > > "pc: pcihp: avoid adding ACPI_PCIHP_PROP_BSEL twice" > > > > (f0c9d64a68b776374ec4732424a3e27753ce37b6). > > > > > > > > Set pci info before checking for the needs to build ACPI tables. > > > > > > > > Reported-by: Sander Eikelenboom > > > > Tested-by: Sander Eikelenboom > > > > Signed-off-by: Anthony PERARD > > > > > > I am worried that Xen will come to depend on specific > > > assignment of bsel which isn't guaranteed. Thoughts on > > > how to avoid that? > > > > Is it possible to have a different BSEL than 0 with PIIX ? > > With PCI to PCI bridges, yes. > > > Also, I don't known if having more than on PCI bus is going to work on > > Xen, there is nothing in our ACPI tables beyond _SB.PCI0, and nothing to > > use a different BSEL. > > My worry is someone might decide to implement hotplug for pci to pci > bridges on Xen. If doing that, it's important to use the qemu supplied > acpi tables. I can always add assert((xen_enable() && !bsel) || !xen_enable()) in acpi_set_bsel(), so if someone was going to make any change, he would find out about bsel quicker. But I don't see Xen using QEMU supplied ACPI tables anytime soon. ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel
Re: [Xen-devel] [PATCH for-2.10 1/2] hw/acpi: Call acpi_set_pci_info when no ACPI tables needed
On Mon, Aug 14, 2017 at 05:45:02PM +0100, Anthony PERARD wrote: > On Mon, Aug 14, 2017 at 06:53:14PM +0300, Michael S. Tsirkin wrote: > > On Mon, Aug 14, 2017 at 03:55:50PM +0100, Anthony PERARD wrote: > > > On Fri, Aug 11, 2017 at 08:18:28PM +0300, Michael S. Tsirkin wrote: > > > > On Fri, Aug 11, 2017 at 04:11:37PM +0100, Anthony PERARD wrote: > > > > > To do PCI passthrough with Xen, the property acpi-pcihp-bsel needs to > > > > > be > > > > > set, but this was done only when ACPI tables are built which is not > > > > > needed for a Xen guest. The need for the property starts with commit > > > > > "pc: pcihp: avoid adding ACPI_PCIHP_PROP_BSEL twice" > > > > > (f0c9d64a68b776374ec4732424a3e27753ce37b6). > > > > > > > > > > Set pci info before checking for the needs to build ACPI tables. > > > > > > > > > > Reported-by: Sander Eikelenboom > > > > > Tested-by: Sander Eikelenboom > > > > > Signed-off-by: Anthony PERARD > > > > > > > > I am worried that Xen will come to depend on specific > > > > assignment of bsel which isn't guaranteed. Thoughts on > > > > how to avoid that? > > > > > > Is it possible to have a different BSEL than 0 with PIIX ? > > > > With PCI to PCI bridges, yes. > > > > > Also, I don't known if having more than on PCI bus is going to work on > > > Xen, there is nothing in our ACPI tables beyond _SB.PCI0, and nothing to > > > use a different BSEL. > > > > My worry is someone might decide to implement hotplug for pci to pci > > bridges on Xen. If doing that, it's important to use the qemu supplied > > acpi tables. > > I can always add assert((xen_enable() && !bsel) || !xen_enable()) in > acpi_set_bsel(), so if someone was going to make any change, he would > find out about bsel quicker. But I don't see Xen using QEMU supplied > ACPI tables anytime soon. In that case I'd prefer assigning bsel 0 just for the root bus on xen. -- MST ___ Xen-devel mailing list Xen-devel@lists.xen.org https://lists.xen.org/xen-devel