[Qemu-devel] [PATCH V2] Revert "hw/pci: disable pci-bridge's shpc by default"

Marcel Apfelbaum posted 1 patch 6 years, 10 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170511102529.21618-1-marcel@redhat.com
Test checkpatch passed
Test docker passed
Test s390x passed
hw/pci-bridge/pci_bridge_dev.c | 2 +-
include/hw/compat.h            | 6 +++++-
2 files changed, 6 insertions(+), 2 deletions(-)
[Qemu-devel] [PATCH V2] Revert "hw/pci: disable pci-bridge's shpc by default"
Posted by Marcel Apfelbaum 6 years, 10 months ago
This reverts commit dc0ae767700c156894e36fab89a745a2dc4173de.

Disabling the shpc controller has an undesired side effect.
The PCI bridge remains with no attached devices at boot time,
and the guest operating systems do not allocate any resources
for it, leaving the bridge unusable. Note that the behaviour
is dictated by the pci bridge specification.

Revert the commit and leave the shpc controller even if is not
actually used by any architecture. Slot 0 remains unusable at boot time.

Keep shpc off for QEMU 2.9 machines.

Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
---

V1 -> V2:
 - Keep shpc off for QEMU 2.9 machines
 - Rebased on Michael's tree to get QEMU 2.10 machine types

Thanks,
Marcel

 hw/pci-bridge/pci_bridge_dev.c | 2 +-
 include/hw/compat.h            | 6 +++++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/hw/pci-bridge/pci_bridge_dev.c b/hw/pci-bridge/pci_bridge_dev.c
index 647ad80..5dbd933 100644
--- a/hw/pci-bridge/pci_bridge_dev.c
+++ b/hw/pci-bridge/pci_bridge_dev.c
@@ -163,7 +163,7 @@ static Property pci_bridge_dev_properties[] = {
     DEFINE_PROP_ON_OFF_AUTO(PCI_BRIDGE_DEV_PROP_MSI, PCIBridgeDev, msi,
                             ON_OFF_AUTO_AUTO),
     DEFINE_PROP_BIT(PCI_BRIDGE_DEV_PROP_SHPC, PCIBridgeDev, flags,
-                    PCI_BRIDGE_DEV_F_SHPC_REQ, false),
+                    PCI_BRIDGE_DEV_F_SHPC_REQ, true),
     DEFINE_PROP_END_OF_LIST(),
 };
 
diff --git a/include/hw/compat.h b/include/hw/compat.h
index 846b90e..55b1765 100644
--- a/include/hw/compat.h
+++ b/include/hw/compat.h
@@ -2,7 +2,11 @@
 #define HW_COMPAT_H
 
 #define HW_COMPAT_2_9 \
-    /* empty */
+    {\
+        .driver   = "pci-bridge",\
+        .property = "shpc",\
+        .value    = "off",\
+    },
 
 #define HW_COMPAT_2_8 \
     {\
-- 
2.9.3


Re: [Qemu-devel] [PATCH V2] Revert "hw/pci: disable pci-bridge's shpc by default"
Posted by Marcel Apfelbaum 6 years, 10 months ago

----- Original Message -----
> From: "Marcel Apfelbaum" <marcel@redhat.com>
> To: qemu-devel@nongnu.org
> Cc: marcel@redhat.com, mst@redhat.com, pbonzini@redhat.com, lersek@redhat.com, dgilbert@redhat.com
> Sent: Thursday, May 11, 2017 1:25:29 PM
> Subject: [Qemu-devel] [PATCH V2] Revert "hw/pci: disable pci-bridge's shpc by default"
> 
> This reverts commit dc0ae767700c156894e36fab89a745a2dc4173de.
> 
> Disabling the shpc controller has an undesired side effect.
> The PCI bridge remains with no attached devices at boot time,
> and the guest operating systems do not allocate any resources
> for it, leaving the bridge unusable. Note that the behaviour
> is dictated by the pci bridge specification.
> 
> Revert the commit and leave the shpc controller even if is not
> actually used by any architecture. Slot 0 remains unusable at boot time.
> 
> Keep shpc off for QEMU 2.9 machines.
> 
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
> ---
> 
> V1 -> V2:
>  - Keep shpc off for QEMU 2.9 machines

Forgot to mentioned the above was Paolo's review, thanks Palo!
Marcel

>  - Rebased on Michael's tree to get QEMU 2.10 machine types
> 
> Thanks,
> Marcel
> 
>  hw/pci-bridge/pci_bridge_dev.c | 2 +-
>  include/hw/compat.h            | 6 +++++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/pci-bridge/pci_bridge_dev.c b/hw/pci-bridge/pci_bridge_dev.c
> index 647ad80..5dbd933 100644
> --- a/hw/pci-bridge/pci_bridge_dev.c
> +++ b/hw/pci-bridge/pci_bridge_dev.c
> @@ -163,7 +163,7 @@ static Property pci_bridge_dev_properties[] = {
>      DEFINE_PROP_ON_OFF_AUTO(PCI_BRIDGE_DEV_PROP_MSI, PCIBridgeDev, msi,
>                              ON_OFF_AUTO_AUTO),
>      DEFINE_PROP_BIT(PCI_BRIDGE_DEV_PROP_SHPC, PCIBridgeDev, flags,
> -                    PCI_BRIDGE_DEV_F_SHPC_REQ, false),
> +                    PCI_BRIDGE_DEV_F_SHPC_REQ, true),
>      DEFINE_PROP_END_OF_LIST(),
>  };
>  
> diff --git a/include/hw/compat.h b/include/hw/compat.h
> index 846b90e..55b1765 100644
> --- a/include/hw/compat.h
> +++ b/include/hw/compat.h
> @@ -2,7 +2,11 @@
>  #define HW_COMPAT_H
>  
>  #define HW_COMPAT_2_9 \
> -    /* empty */
> +    {\
> +        .driver   = "pci-bridge",\
> +        .property = "shpc",\
> +        .value    = "off",\
> +    },
>  
>  #define HW_COMPAT_2_8 \
>      {\
> --
> 2.9.3
> 
> 

Re: [Qemu-devel] [PATCH V2] Revert "hw/pci: disable pci-bridge's shpc by default"
Posted by Paolo Bonzini 6 years, 10 months ago

On 11/05/2017 12:25, Marcel Apfelbaum wrote:
> This reverts commit dc0ae767700c156894e36fab89a745a2dc4173de.
> 
> Disabling the shpc controller has an undesired side effect.
> The PCI bridge remains with no attached devices at boot time,
> and the guest operating systems do not allocate any resources
> for it, leaving the bridge unusable. Note that the behaviour
> is dictated by the pci bridge specification.
> 
> Revert the commit and leave the shpc controller even if is not
> actually used by any architecture. Slot 0 remains unusable at boot time.
> 
> Keep shpc off for QEMU 2.9 machines.
> 
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>
> ---
> 
> V1 -> V2:
>  - Keep shpc off for QEMU 2.9 machines
>  - Rebased on Michael's tree to get QEMU 2.10 machine types
> 
> Thanks,
> Marcel
> 
>  hw/pci-bridge/pci_bridge_dev.c | 2 +-
>  include/hw/compat.h            | 6 +++++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/pci-bridge/pci_bridge_dev.c b/hw/pci-bridge/pci_bridge_dev.c
> index 647ad80..5dbd933 100644
> --- a/hw/pci-bridge/pci_bridge_dev.c
> +++ b/hw/pci-bridge/pci_bridge_dev.c
> @@ -163,7 +163,7 @@ static Property pci_bridge_dev_properties[] = {
>      DEFINE_PROP_ON_OFF_AUTO(PCI_BRIDGE_DEV_PROP_MSI, PCIBridgeDev, msi,
>                              ON_OFF_AUTO_AUTO),
>      DEFINE_PROP_BIT(PCI_BRIDGE_DEV_PROP_SHPC, PCIBridgeDev, flags,
> -                    PCI_BRIDGE_DEV_F_SHPC_REQ, false),
> +                    PCI_BRIDGE_DEV_F_SHPC_REQ, true),
>      DEFINE_PROP_END_OF_LIST(),
>  };
>  
> diff --git a/include/hw/compat.h b/include/hw/compat.h
> index 846b90e..55b1765 100644
> --- a/include/hw/compat.h
> +++ b/include/hw/compat.h
> @@ -2,7 +2,11 @@
>  #define HW_COMPAT_H
>  
>  #define HW_COMPAT_2_9 \
> -    /* empty */
> +    {\
> +        .driver   = "pci-bridge",\
> +        .property = "shpc",\
> +        .value    = "off",\
> +    },
>  
>  #define HW_COMPAT_2_8 \
>      {\
> 

Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>

Re: [Qemu-devel] [PATCH V2] Revert "hw/pci: disable pci-bridge's shpc by default"
Posted by Michael S. Tsirkin 6 years, 10 months ago
On Thu, May 11, 2017 at 01:25:29PM +0300, Marcel Apfelbaum wrote:
> This reverts commit dc0ae767700c156894e36fab89a745a2dc4173de.
> 
> Disabling the shpc controller has an undesired side effect.
> The PCI bridge remains with no attached devices at boot time,
> and the guest operating systems do not allocate any resources
> for it, leaving the bridge unusable. Note that the behaviour
> is dictated by the pci bridge specification.
> 
> Revert the commit and leave the shpc controller even if is not
> actually used by any architecture. Slot 0 remains unusable at boot time.
> 
> Keep shpc off for QEMU 2.9 machines.
> 
> Signed-off-by: Marcel Apfelbaum <marcel@redhat.com>

Applied, thanks!

> ---
> 
> V1 -> V2:
>  - Keep shpc off for QEMU 2.9 machines
>  - Rebased on Michael's tree to get QEMU 2.10 machine types
> 
> Thanks,
> Marcel
> 
>  hw/pci-bridge/pci_bridge_dev.c | 2 +-
>  include/hw/compat.h            | 6 +++++-
>  2 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/hw/pci-bridge/pci_bridge_dev.c b/hw/pci-bridge/pci_bridge_dev.c
> index 647ad80..5dbd933 100644
> --- a/hw/pci-bridge/pci_bridge_dev.c
> +++ b/hw/pci-bridge/pci_bridge_dev.c
> @@ -163,7 +163,7 @@ static Property pci_bridge_dev_properties[] = {
>      DEFINE_PROP_ON_OFF_AUTO(PCI_BRIDGE_DEV_PROP_MSI, PCIBridgeDev, msi,
>                              ON_OFF_AUTO_AUTO),
>      DEFINE_PROP_BIT(PCI_BRIDGE_DEV_PROP_SHPC, PCIBridgeDev, flags,
> -                    PCI_BRIDGE_DEV_F_SHPC_REQ, false),
> +                    PCI_BRIDGE_DEV_F_SHPC_REQ, true),
>      DEFINE_PROP_END_OF_LIST(),
>  };
>  
> diff --git a/include/hw/compat.h b/include/hw/compat.h
> index 846b90e..55b1765 100644
> --- a/include/hw/compat.h
> +++ b/include/hw/compat.h
> @@ -2,7 +2,11 @@
>  #define HW_COMPAT_H
>  
>  #define HW_COMPAT_2_9 \
> -    /* empty */
> +    {\
> +        .driver   = "pci-bridge",\
> +        .property = "shpc",\
> +        .value    = "off",\
> +    },
>  
>  #define HW_COMPAT_2_8 \
>      {\
> -- 
> 2.9.3