Message ID | 20181120110427.7321-1-david@redhat.com |
---|---|
Headers | show |
Series | pci: hotplug handler reworks | expand |
On 20.11.18 12:04, David Hildenbrand wrote: > This series reworks some pci hotplug handlers (except for s390, that will > require more work but is not required for now). > > 1. Route all unplug calls via the hotplug handler when called from the > unplug_request handler. This will be required to get multi-stage > hotplug handlers running, but also makes sense on its own (just like we > already did for some CPU/memory hotplug handlers). > > 2. Introduce some pre_plug handlers where it makes sense already. > > 3. Call the plug/pre_plug handler also for coldplugged devices. Especially > pcihp is special as it overwrites hotplug handlers. > > This series will not yet factor out pre_plug/plug/unplug from pci device > realize/unrealize functions, this will require more work but this > series is also required first to get it running. > > In my opinion what needs to be done in the future: > 1. Introduce pre_plug/plug/unplug_request/unplug handlers for all PCI > buses > 2. Move pci realize/unrealize parts to pre_plug/pkug/unplug functions like > pci_pre_plug() ... > 3. Call the pci pre_plug/plug/unplug handlers from the PCI bus hotplug > handler at the right spots > 4. Factor more checks from existing plug() handlers out into pre_plug() > (e.g. after the call to pci_pre_plug()) > > v2 -> v3: > - Added "pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge" > -- Use one handler callback for pcie and !pcie > - "pci/shpc: perform unplug via the hotplug handler" > -- Use one handler callback for pcie and !pcie > -- Replace error check by an assertion > - Minor description changes. > - Added Rbs > > v1 -> v2: > - Added "pci/pcie: rename hotplug handler callbacks" > - Added "pci/shpc: rename hotplug handler callbacks" > - Added "s390x/pci: rename hotplug handler callbacks" > - Dropped "pci/shpc: move hotplug checks to preplug handler" > -- We will have to factor out stuff into pre_plug() first as described > above > - Renamed and added more details to the "perform unplug via the hotplug > handler" patches > - "pci/pcihp: overwrite hotplug handler recursively from the start" > -- Perform the overwrite only for cold plugged bridges, to keep the > existing behavior > > David Hildenbrand (11): > pci/pcie: rename hotplug handler callbacks > pci/shpc: rename hotplug handler callbacks > s390x/pci: rename hotplug handler callbacks > pci/pcie: stop plug/unplug if the slot is locked > pci/pcihp: perform check for bus capability in pre_plug handler > pci/pcihp: overwrite hotplug handler recursively from the start > pci/pcihp: perform unplug via the hotplug handler > pci/pcie: perform unplug via the hotplug handler > pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge > pci/shpc: perform unplug via the hotplug handler > spapr_pci: perform unplug via the hotplug handler > > hw/acpi/pcihp.c | 47 ++++++++++++++++++++++++++++----- > hw/acpi/piix4.c | 39 ++++++++++++++------------- > hw/pci-bridge/pci_bridge_dev.c | 31 ++++++++++++++-------- > hw/pci-bridge/pcie_pci_bridge.c | 32 +++------------------- > hw/pci/pcie.c | 46 +++++++++++++++++++++----------- > hw/pci/pcie_port.c | 6 +++-- > hw/pci/shpc.c | 25 ++++++++++++------ > hw/ppc/spapr_pci.c | 33 ++++++++++++++--------- > hw/s390x/s390-pci-bus.c | 12 ++++----- > include/hw/acpi/pcihp.h | 5 ++++ > include/hw/pci/pci_bridge.h | 6 +++++ > include/hw/pci/pcie.h | 12 ++++++--- > include/hw/pci/shpc.h | 10 ++++--- > 13 files changed, 187 insertions(+), 117 deletions(-) > Seems like everything is reviewed and this is good to go. Anybody fancy queuing this? (@mst?) Thanks!
On Wed, Nov 21, 2018 at 01:43:05PM +0100, David Hildenbrand wrote: > On 20.11.18 12:04, David Hildenbrand wrote: > > This series reworks some pci hotplug handlers (except for s390, that will > > require more work but is not required for now). > > > > 1. Route all unplug calls via the hotplug handler when called from the > > unplug_request handler. This will be required to get multi-stage > > hotplug handlers running, but also makes sense on its own (just like we > > already did for some CPU/memory hotplug handlers). > > > > 2. Introduce some pre_plug handlers where it makes sense already. > > > > 3. Call the plug/pre_plug handler also for coldplugged devices. Especially > > pcihp is special as it overwrites hotplug handlers. > > > > This series will not yet factor out pre_plug/plug/unplug from pci device > > realize/unrealize functions, this will require more work but this > > series is also required first to get it running. > > > > In my opinion what needs to be done in the future: > > 1. Introduce pre_plug/plug/unplug_request/unplug handlers for all PCI > > buses > > 2. Move pci realize/unrealize parts to pre_plug/pkug/unplug functions like > > pci_pre_plug() ... > > 3. Call the pci pre_plug/plug/unplug handlers from the PCI bus hotplug > > handler at the right spots > > 4. Factor more checks from existing plug() handlers out into pre_plug() > > (e.g. after the call to pci_pre_plug()) > > > > v2 -> v3: > > - Added "pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge" > > -- Use one handler callback for pcie and !pcie > > - "pci/shpc: perform unplug via the hotplug handler" > > -- Use one handler callback for pcie and !pcie > > -- Replace error check by an assertion > > - Minor description changes. > > - Added Rbs > > > > v1 -> v2: > > - Added "pci/pcie: rename hotplug handler callbacks" > > - Added "pci/shpc: rename hotplug handler callbacks" > > - Added "s390x/pci: rename hotplug handler callbacks" > > - Dropped "pci/shpc: move hotplug checks to preplug handler" > > -- We will have to factor out stuff into pre_plug() first as described > > above > > - Renamed and added more details to the "perform unplug via the hotplug > > handler" patches > > - "pci/pcihp: overwrite hotplug handler recursively from the start" > > -- Perform the overwrite only for cold plugged bridges, to keep the > > existing behavior > > > > David Hildenbrand (11): > > pci/pcie: rename hotplug handler callbacks > > pci/shpc: rename hotplug handler callbacks > > s390x/pci: rename hotplug handler callbacks > > pci/pcie: stop plug/unplug if the slot is locked > > pci/pcihp: perform check for bus capability in pre_plug handler > > pci/pcihp: overwrite hotplug handler recursively from the start > > pci/pcihp: perform unplug via the hotplug handler > > pci/pcie: perform unplug via the hotplug handler > > pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge > > pci/shpc: perform unplug via the hotplug handler > > spapr_pci: perform unplug via the hotplug handler > > > > hw/acpi/pcihp.c | 47 ++++++++++++++++++++++++++++----- > > hw/acpi/piix4.c | 39 ++++++++++++++------------- > > hw/pci-bridge/pci_bridge_dev.c | 31 ++++++++++++++-------- > > hw/pci-bridge/pcie_pci_bridge.c | 32 +++------------------- > > hw/pci/pcie.c | 46 +++++++++++++++++++++----------- > > hw/pci/pcie_port.c | 6 +++-- > > hw/pci/shpc.c | 25 ++++++++++++------ > > hw/ppc/spapr_pci.c | 33 ++++++++++++++--------- > > hw/s390x/s390-pci-bus.c | 12 ++++----- > > include/hw/acpi/pcihp.h | 5 ++++ > > include/hw/pci/pci_bridge.h | 6 +++++ > > include/hw/pci/pcie.h | 12 ++++++--- > > include/hw/pci/shpc.h | 10 ++++--- > > 13 files changed, 187 insertions(+), 117 deletions(-) > > > > Seems like everything is reviewed and this is good to go. Anybody fancy > queuing this? (@mst?) Thanks! Yes, thanks! But we are in freeze so please repost after the release and I will queue. > -- > > Thanks, > > David / dhildenb
On 21.11.18 14:28, Michael S. Tsirkin wrote: > On Wed, Nov 21, 2018 at 01:43:05PM +0100, David Hildenbrand wrote: >> On 20.11.18 12:04, David Hildenbrand wrote: >>> This series reworks some pci hotplug handlers (except for s390, that will >>> require more work but is not required for now). >>> >>> 1. Route all unplug calls via the hotplug handler when called from the >>> unplug_request handler. This will be required to get multi-stage >>> hotplug handlers running, but also makes sense on its own (just like we >>> already did for some CPU/memory hotplug handlers). >>> >>> 2. Introduce some pre_plug handlers where it makes sense already. >>> >>> 3. Call the plug/pre_plug handler also for coldplugged devices. Especially >>> pcihp is special as it overwrites hotplug handlers. >>> >>> This series will not yet factor out pre_plug/plug/unplug from pci device >>> realize/unrealize functions, this will require more work but this >>> series is also required first to get it running. >>> >>> In my opinion what needs to be done in the future: >>> 1. Introduce pre_plug/plug/unplug_request/unplug handlers for all PCI >>> buses >>> 2. Move pci realize/unrealize parts to pre_plug/pkug/unplug functions like >>> pci_pre_plug() ... >>> 3. Call the pci pre_plug/plug/unplug handlers from the PCI bus hotplug >>> handler at the right spots >>> 4. Factor more checks from existing plug() handlers out into pre_plug() >>> (e.g. after the call to pci_pre_plug()) >>> >>> v2 -> v3: >>> - Added "pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge" >>> -- Use one handler callback for pcie and !pcie >>> - "pci/shpc: perform unplug via the hotplug handler" >>> -- Use one handler callback for pcie and !pcie >>> -- Replace error check by an assertion >>> - Minor description changes. >>> - Added Rbs >>> >>> v1 -> v2: >>> - Added "pci/pcie: rename hotplug handler callbacks" >>> - Added "pci/shpc: rename hotplug handler callbacks" >>> - Added "s390x/pci: rename hotplug handler callbacks" >>> - Dropped "pci/shpc: move hotplug checks to preplug handler" >>> -- We will have to factor out stuff into pre_plug() first as described >>> above >>> - Renamed and added more details to the "perform unplug via the hotplug >>> handler" patches >>> - "pci/pcihp: overwrite hotplug handler recursively from the start" >>> -- Perform the overwrite only for cold plugged bridges, to keep the >>> existing behavior >>> >>> David Hildenbrand (11): >>> pci/pcie: rename hotplug handler callbacks >>> pci/shpc: rename hotplug handler callbacks >>> s390x/pci: rename hotplug handler callbacks >>> pci/pcie: stop plug/unplug if the slot is locked >>> pci/pcihp: perform check for bus capability in pre_plug handler >>> pci/pcihp: overwrite hotplug handler recursively from the start >>> pci/pcihp: perform unplug via the hotplug handler >>> pci/pcie: perform unplug via the hotplug handler >>> pci: Reuse pci-bridge hotplug handler handlers for pcie-pci-bridge >>> pci/shpc: perform unplug via the hotplug handler >>> spapr_pci: perform unplug via the hotplug handler >>> >>> hw/acpi/pcihp.c | 47 ++++++++++++++++++++++++++++----- >>> hw/acpi/piix4.c | 39 ++++++++++++++------------- >>> hw/pci-bridge/pci_bridge_dev.c | 31 ++++++++++++++-------- >>> hw/pci-bridge/pcie_pci_bridge.c | 32 +++------------------- >>> hw/pci/pcie.c | 46 +++++++++++++++++++++----------- >>> hw/pci/pcie_port.c | 6 +++-- >>> hw/pci/shpc.c | 25 ++++++++++++------ >>> hw/ppc/spapr_pci.c | 33 ++++++++++++++--------- >>> hw/s390x/s390-pci-bus.c | 12 ++++----- >>> include/hw/acpi/pcihp.h | 5 ++++ >>> include/hw/pci/pci_bridge.h | 6 +++++ >>> include/hw/pci/pcie.h | 12 ++++++--- >>> include/hw/pci/shpc.h | 10 ++++--- >>> 13 files changed, 187 insertions(+), 117 deletions(-) >>> >> >> Seems like everything is reviewed and this is good to go. Anybody fancy >> queuing this? (@mst?) Thanks! > > Yes, thanks! But we are in freeze so please repost after the release and I will queue. I know about the freeze, however some maintainers seem to be queue patches already during the freeze. I can resend once we're working on 4.0 :) Thanks!