[PATCH v4 00/16] pci hotplug tracking

Vladimir Sementsov-Ogievskiy posted 16 patches 1 year, 2 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20230213140103.1518173-1-vsementsov@yandex-team.ru
Maintainers: "Michael S. Tsirkin" <mst@redhat.com>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, Paolo Bonzini <pbonzini@redhat.com>, "Daniel P. Berrangé" <berrange@redhat.com>, Eduardo Habkost <eduardo@habkost.net>, Eric Blake <eblake@redhat.com>, Markus Armbruster <armbru@redhat.com>
There is a newer version of this series
docs/about/deprecated.rst       |   9 ++
qapi/qdev.json                  | 200 ++++++++++++++++++++++++++++-
include/hw/hotplug.h            |  12 ++
include/hw/pci/pci.h            |   4 +
include/hw/pci/pci_bridge.h     |   2 +
include/hw/pci/pcie.h           |  10 +-
include/hw/pci/pcie_regs.h      |  14 ---
include/hw/pci/shpc.h           |   2 +
include/monitor/qdev.h          |   5 +
hw/core/hotplug.c               |  13 ++
hw/pci-bridge/pci_bridge_dev.c  |  14 +++
hw/pci-bridge/pcie_pci_bridge.c |   1 +
hw/pci/pci.c                    |  33 +++++
hw/pci/pcie.c                   | 122 ++++++++++++++++--
hw/pci/pcie_port.c              |   1 +
hw/pci/shpc.c                   | 215 ++++++++++++++++++++++++--------
softmmu/qdev-monitor.c          |  39 ++++++
17 files changed, 608 insertions(+), 88 deletions(-)
[PATCH v4 00/16] pci hotplug tracking
Posted by Vladimir Sementsov-Ogievskiy 1 year, 2 months ago
Hi all!

v4: rework the API after discussion in the mailing list

----

The main patches are the last two ones:

- introduce HOTPLUG_STATE event, that inform when hotplug controller
change it's state, especially indicator leds

- query-hotplug command, that provides same information as event on
demand

- DEVICE_ON event - a kind of counterpart for DEVICE_DELETED, signals
when device is finally accepted by guest, power indicator is on and so
on.

That's all for smarter handling of SHPC and PCIe-native hotplug.

If you want to test new events, don't forget
  -global ICH9-LPC.acpi-pci-hotplug-with-bridge-support=off
flag, to disable ACPI hotplug default.

Vladimir Sementsov-Ogievskiy (16):
  pci/shpc: set attention led to OFF on reset
  pci/shpc: change shpc_get_status() return type to uint8_t
  pci/shpc: shpc_slot_command(): handle PWRONLY -> ENABLED transition
  pci/shpc: more generic handle hot-unplug in shpc_slot_command()
  pci/shpc: pass PCIDevice pointer to shpc_slot_command()
  pci/shpc: refactor shpc_device_plug_common()
  pcie: pcie_cap_slot_write_config(): use correct macro
  pcie_regs: drop duplicated indicator value macros
  pcie: drop unused PCIExpressIndicator
  pcie: pcie_cap_slot_enable_power() use correct helper
  pcie: introduce pcie_sltctl_powered_off() helper
  pcie: set power indicator to off on reset by default
  pci: introduce pci_find_the_only_child()
  qapi: deprecate "device" field of DEVICE_* events
  qapi: add HOTPLUG_STATE event
  qapi: introduce DEVICE_ON event

 docs/about/deprecated.rst       |   9 ++
 qapi/qdev.json                  | 200 ++++++++++++++++++++++++++++-
 include/hw/hotplug.h            |  12 ++
 include/hw/pci/pci.h            |   4 +
 include/hw/pci/pci_bridge.h     |   2 +
 include/hw/pci/pcie.h           |  10 +-
 include/hw/pci/pcie_regs.h      |  14 ---
 include/hw/pci/shpc.h           |   2 +
 include/monitor/qdev.h          |   5 +
 hw/core/hotplug.c               |  13 ++
 hw/pci-bridge/pci_bridge_dev.c  |  14 +++
 hw/pci-bridge/pcie_pci_bridge.c |   1 +
 hw/pci/pci.c                    |  33 +++++
 hw/pci/pcie.c                   | 122 ++++++++++++++++--
 hw/pci/pcie_port.c              |   1 +
 hw/pci/shpc.c                   | 215 ++++++++++++++++++++++++--------
 softmmu/qdev-monitor.c          |  39 ++++++
 17 files changed, 608 insertions(+), 88 deletions(-)

-- 
2.34.1