[Xen-devel] [PATCH for-2.10 1/2] hw/acpi: Call acpi_set_pci_info when no ACPI tables needed

2017-08-11 Thread Anthony PERARD
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

2017-08-11 Thread Michael S. Tsirkin
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

2017-08-14 Thread Anthony PERARD
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

2017-08-14 Thread Michael S. Tsirkin
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

2017-08-14 Thread Anthony PERARD
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

2017-08-14 Thread Michael S. Tsirkin
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