From: Gavin Shan <gwshan@linux•vnet.ibm.com>
To: Daniel Axtens <dja@axtens•net>
Cc: Gavin Shan <gwshan@linux•vnet.ibm.com>, linuxppc-dev@ozlabs•org
Subject: Re: [PATCH v2 2/8] powerpc/eeh: More relexed hotplug criterion
Date: Tue, 13 Oct 2015 10:25:10 +1100 [thread overview]
Message-ID: <20151012232510.GA14333@gwshan> (raw)
In-Reply-To: <87612b4rye.fsf@gamma.ozlabs.ibm.com>
On Tue, Oct 13, 2015 at 09:55:53AM +1100, Daniel Axtens wrote:
>> Currently, we rely on the existence of struct pci_driver::err_handler
>> to judge if the corresponding PCI device should be unplugged during
>> EEH recovery (partially hotplug case). However, it's not elaborate.
>> some device drivers are implementing part of the EEH error handlers
>> to collect diag-data. That means the driver still expects a hotplug
>> to recover from the EEH error.
>
>
>> This makes the hotplug criterion more relaxed: if the device driver
>> doesn't provide all necessary EEH error handlers, it will experience
>> hotplug during EEH recovery.
>
>Interesting.
>
>My understanding of Documentation/PCI/pci-error-recovery.txt is that a
>driver should be able to just supply an error_detected() callback. If
>the driver just wants to collect diag-data and wants to be hotplugged,
>it should return PCI_ERS_RESULT_NONE.
>
>What drivers did you have in mind?
>
Danienl, The issue is tracked by IBM's bugzilla 127612 reported from Nvida
private GPU drivers. I tried to find the source code from upstream kernel,
but failed.
Taking an example, one PE has two different devices A and B. A's driver
privides error_detected()/slot_reset()/resume() and it's returning NEED_RESET.
B's driver just provides error_detected() that returns NONE as you said.
EEH core receives NEED_RESET and B won't be having hotplug during recovery.
The error won't be recovered on B.
Thanks,
Gavin
>>
>> Signed-off-by: Gavin Shan <gwshan@linux•vnet.ibm.com>
>> ---
>> arch/powerpc/kernel/eeh_driver.c | 5 ++++-
>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/powerpc/kernel/eeh_driver.c b/arch/powerpc/kernel/eeh_driver.c
>> index 3a626ed..32178a4 100644
>> --- a/arch/powerpc/kernel/eeh_driver.c
>> +++ b/arch/powerpc/kernel/eeh_driver.c
>> @@ -416,7 +416,10 @@ static void *eeh_rmv_device(void *data, void *userdata)
>> driver = eeh_pcid_get(dev);
>> if (driver) {
>> eeh_pcid_put(dev);
>> - if (driver->err_handler)
>> + if (driver->err_handler &&
>> + driver->err_handler->error_detected &&
>> + driver->err_handler->slot_reset &&
>> + driver->err_handler->resume)
>> return NULL;
>> }
>>
>> --
>> 2.1.0
>>
>> _______________________________________________
>> Linuxppc-dev mailing list
>> Linuxppc-dev@lists•ozlabs.org
>> https://lists.ozlabs.org/listinfo/linuxppc-dev
next prev parent reply other threads:[~2015-10-12 23:26 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-08 3:58 [PATCH v2 0/8] EEH Improvement and Cleanup Gavin Shan
2015-10-08 3:58 ` [PATCH v2 1/8] powerpc/eeh: Don't unfreeze PHB PE after reset Gavin Shan
2015-10-21 11:41 ` [v2,1/8] " Michael Ellerman
2015-10-08 3:58 ` [PATCH v2 2/8] powerpc/eeh: More relexed hotplug criterion Gavin Shan
2015-10-12 22:55 ` Daniel Axtens
2015-10-12 23:25 ` Gavin Shan [this message]
2015-10-13 2:48 ` Daniel Axtens
2015-10-13 4:28 ` Gavin Shan
2015-10-13 23:48 ` Daniel Axtens
2015-10-14 1:33 ` Gavin Shan
2015-10-08 3:58 ` [PATCH v2 3/8] powerpc/eeh: Force reset on fenced PHB Gavin Shan
2015-10-13 1:43 ` Daniel Axtens
2015-10-13 5:01 ` Gavin Shan
2015-10-13 5:18 ` Daniel Axtens
2015-10-08 3:58 ` [PATCH v2 4/8] powerpc/eeh: More relxed condition for enabled IO path Gavin Shan
2015-10-08 3:58 ` [PATCH v2 5/8] powerpc/pseries: Cleanup on pseries_eeh_get_state() Gavin Shan
2015-10-08 4:15 ` Andrew Donnellan
2015-10-08 3:58 ` [PATCH v2 6/8] powerpc/powernv: Cleanup on EEH comments Gavin Shan
2015-10-08 3:58 ` [PATCH v2 7/8] powerpc/powernv: Remove pnv_eeh_cap_start() Gavin Shan
2015-10-08 4:18 ` Andrew Donnellan
2015-10-08 3:58 ` [PATCH v2 8/8] powerpc/powernv: Simplify pnv_eeh_set_option() Gavin Shan
2015-10-08 4:33 ` Andrew Donnellan
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=20151012232510.GA14333@gwshan \
--to=gwshan@linux$(echo .)vnet.ibm.com \
--cc=dja@axtens$(echo .)net \
--cc=linuxppc-dev@ozlabs$(echo .)org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
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