From: Sam Bobroff <sbobroff@linux.ibm.com>
To: linuxppc-dev@lists.ozlabs.org
Subject: [PATCH 0/8]
Date: Wed, 20 Mar 2019 13:58:19 +1100 [thread overview]
Message-ID: <cover.1553050609.git.sbobroff@linux.ibm.com> (raw)
Hi all,
This patch set adds support for EEH recovery of hot plugged devices on pSeries
machines. Specifically, devices discovered by PCI rescanning using
/sys/bus/pci/rescan, which includes devices hotplugged by QEMU's device_add
command. (pSeries doesn't currently use slot power control for hotplugging.)
As a side effect this also provides EEH support for devices removed by
/sys/bus/pci/devices/*/remove and re-discovered by writing to /sys/bus/pci/rescan,
on all platforms.
The approach I've taken is to use the fact that the existing
pcibios_bus_add_device() platform hooks (which are used to set up EEH on
Virtual Function devices (VFs)) are actually called for all devices, so I've
widened their scope and made other adjustments necessary to allow them to work
for hotplugged and boot-time devices as well.
Because some of the changes are in generic PowerPC code, it's
possible that I've disturbed something for another PowerPC platform. I've tried
to minimize this by leaving that code alone as much as possible and so there
are a few cases where eeh_add_device_{early,late}() or eeh_add_sysfs_files() is
called more than once. I think these can be looked at later, as duplicate calls
are not harmful.
The patch "Convert PNV_PHB_FLAG_EEH" isn't strictly necessary and I'm not sure
if it's better to keep it, because it simplifies the code or drop it, because
we may need a separate flag per PHB later on. Thoughts anyone?
The first patch is a rework of the pcibios_init reordering patch I posted
earlier, which I've included here because it's necessary for this set.
I have done some testing for PowerNV on Power9 using a modified pnv_php module
and some testing on pSeries with slot power control using a modified rpaphp
module, and the EEH-related parts seem to work.
Cheers,
Sam.
Sam Bobroff (8):
powerpc/64: Adjust order in pcibios_init()
powerpc/eeh: Clear stale EEH_DEV_NO_HANDLER flag
powerpc/eeh: Convert PNV_PHB_FLAG_EEH to global flag
powerpc/eeh: Improve debug messages around device addition
powerpc/eeh: Add eeh_show_enabled()
powerpc/eeh: Initialize EEH address cache earlier
powerpc/eeh: EEH for pSeries hot plug
powerpc/eeh: Remove eeh_probe_devices() and eeh_addr_cache_build()
arch/powerpc/include/asm/eeh.h | 19 +++--
arch/powerpc/kernel/eeh.c | 33 ++++-----
arch/powerpc/kernel/eeh_cache.c | 29 +-------
arch/powerpc/kernel/eeh_driver.c | 4 ++
arch/powerpc/kernel/of_platform.c | 3 +-
arch/powerpc/kernel/pci-common.c | 4 --
arch/powerpc/kernel/pci_32.c | 4 ++
arch/powerpc/kernel/pci_64.c | 12 +++-
arch/powerpc/platforms/powernv/eeh-powernv.c | 41 +++++------
arch/powerpc/platforms/powernv/pci.c | 7 +-
arch/powerpc/platforms/powernv/pci.h | 2 -
arch/powerpc/platforms/pseries/eeh_pseries.c | 75 +++++++++++---------
arch/powerpc/platforms/pseries/pci.c | 7 +-
13 files changed, 122 insertions(+), 118 deletions(-)
--
2.19.0.2.gcad72f5712
next reply other threads:[~2019-03-20 3:07 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-03-20 2:58 Sam Bobroff [this message]
2019-03-20 2:58 ` [PATCH 1/8] powerpc/64: Adjust order in pcibios_init() Sam Bobroff
2019-03-20 6:03 ` Alexey Kardashevskiy
2019-03-20 2:58 ` [PATCH 2/8] powerpc/eeh: Clear stale EEH_DEV_NO_HANDLER flag Sam Bobroff
2019-03-20 6:02 ` Alexey Kardashevskiy
2019-04-08 6:50 ` Sam Bobroff
2019-03-20 2:58 ` [PATCH 3/8] powerpc/eeh: Convert PNV_PHB_FLAG_EEH to global flag Sam Bobroff
2019-03-20 6:02 ` Alexey Kardashevskiy
2019-04-09 1:41 ` Sam Bobroff
2019-04-18 9:51 ` Oliver O'Halloran
2019-04-30 5:30 ` Sam Bobroff
2019-03-20 2:58 ` [PATCH 4/8] powerpc/eeh: Improve debug messages around device addition Sam Bobroff
2019-03-20 6:02 ` Alexey Kardashevskiy
2019-03-20 2:58 ` [PATCH 5/8] powerpc/eeh: Add eeh_show_enabled() Sam Bobroff
2019-03-20 6:02 ` Alexey Kardashevskiy
2019-03-20 6:24 ` Oliver
2019-04-09 3:30 ` Sam Bobroff
2019-04-18 10:01 ` Oliver O'Halloran
2019-04-30 5:44 ` Sam Bobroff
2019-03-20 2:58 ` [PATCH 6/8] powerpc/eeh: Initialize EEH address cache earlier Sam Bobroff
2019-03-20 6:02 ` Alexey Kardashevskiy
2019-04-18 10:13 ` Oliver O'Halloran
2019-04-30 5:54 ` Sam Bobroff
2019-03-20 2:58 ` [PATCH 7/8] powerpc/eeh: EEH for pSeries hot plug Sam Bobroff
2019-03-20 6:02 ` Alexey Kardashevskiy
2019-03-20 2:58 ` [PATCH 8/8] powerpc/eeh: Remove eeh_probe_devices() and eeh_addr_cache_build() Sam Bobroff
2019-03-20 6:05 ` Alexey Kardashevskiy
2019-04-09 3:31 ` Sam Bobroff
2019-04-12 0:55 ` [PATCH 0/8] Tyrel Datwyler
2019-04-15 3:41 ` Sam Bobroff
2019-04-19 22:36 ` Tyrel Datwyler
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1553050609.git.sbobroff@linux.ibm.com \
--to=sbobroff@linux.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).