qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/3] Fix broken PCIe device after migration
@ 2022-03-01 15:11 Igor Mammedov
  2022-03-01 15:11 ` [PATCH v2 1/3] pci: expose TYPE_XIO3130_DOWNSTREAM name Igor Mammedov
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Igor Mammedov @ 2022-03-01 15:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: kraxel, mst

Changelog:
   v2:
     * instead of disabling power control on slot and letting ACPI
       PCI hotplug  module in guest to deal with it, set
       PCI_EXP_SLTCTL_PWR_ON on PCIe slot from acpi_pcihp_device_plug_cb()
       when a device plugged into it.

Currently ACPI PCI hotplug is enabled by default for Q35 machine
type and overrides native PCIe hotplug. It works as expected when
a PCIe device is hotplugged into slot, however the device becomes
in-operational after migration. Which is caused by BARs being
disabled on target due to powered off status of the slot.

Proposed fix turns on power on PCIe slot when a device is
hotplugged into it, then that state is migrated and device
stays powred on after migration. 

Tested with (seabios: FC34, Win2012; ovmf: RHEL8)

RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=2053584
CC: mst@redhat.com
CC: kraxel@redhat.com

Ref to v1:
 https://lore.kernel.org/all/20220225100127.78974d71@redhat.com/T/
Gitlab link:
 https://gitlab.com/imammedo/qemu/-/tree/pcie_poweroff_acpi_regression_rhbz2053584_V2

Igor Mammedov (3):
  pci: expose TYPE_XIO3130_DOWNSTREAM name
  acpi: pcihp: pcie: set power on cap on parent slot
  q35: compat: keep hotplugged PCIe device broken after migration for
    6.2 and older machine types

 include/hw/acpi/pcihp.h                    |  1 +
 include/hw/pci-bridge/xio3130_downstream.h | 15 +++++++++++++++
 include/hw/pci/pcie.h                      |  1 +
 hw/acpi/ich9.c                             | 20 ++++++++++++++++++++
 hw/acpi/pcihp.c                            | 15 ++++++++++++++-
 hw/core/machine.c                          |  4 +++-
 hw/pci-bridge/xio3130_downstream.c         |  3 ++-
 hw/pci/pcie.c                              | 11 +++++++++++
 8 files changed, 67 insertions(+), 3 deletions(-)
 create mode 100644 include/hw/pci-bridge/xio3130_downstream.h

-- 
2.31.1



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-03-02  7:53 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-03-01 15:11 [PATCH v2 0/3] Fix broken PCIe device after migration Igor Mammedov
2022-03-01 15:11 ` [PATCH v2 1/3] pci: expose TYPE_XIO3130_DOWNSTREAM name Igor Mammedov
2022-03-01 15:11 ` [PATCH v2 2/3] acpi: pcihp: pcie: set power on cap on parent slot Igor Mammedov
2022-03-01 15:12 ` [PATCH v2 3/3] q35: compat: keep hotplugged PCIe device broken after migration for 6.2 and older machine types Igor Mammedov
2022-03-01 15:20   ` Michael S. Tsirkin
2022-03-02  7:51     ` Igor Mammedov
2022-03-01 15:20 ` [PATCH v2 0/3] Fix broken PCIe device after migration Michael S. Tsirkin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).