linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
@ 2014-09-29 16:48 Guenter Roeck
  2014-09-29 18:36 ` Scott Wood
  0 siblings, 1 reply; 14+ messages in thread
From: Guenter Roeck @ 2014-09-29 16:48 UTC (permalink / raw)
  To: Benjamin Herrenschmidt
  Cc: linux-kernel, Guenter Roeck, Paul Mackerras, Scott Wood,
	linuxppc-dev, Guenter Roeck, Jojy G Varghese

From: Jojy G Varghese <jojyv@juniper.net>

For E500MC and E5500, a machine check exception in pci(e) memory space
crashes the kernel.

Testing shows that the MCAR(U) register is zero on a MC exception for the
E5500 core. At the same time, DEAR register has been found to have the
address of the faulty load address during an MC exception for this core.

This fix changes the current behavior to fixup the result register
and instruction pointers in the case of a load operation on a faulty
PCI address.

The changes are:
- Added the hook to pci machine check handing to the e500mc machine check
  exception handler.
- For the E5500 core, load faulting address from SPRN_DEAR register.
  As mentioned above, this is necessary because the E5500 core does not
  report the fault address in the MCAR register.

Cc: Scott Wood <scottwood@freescale.com>
Signed-off-by: Jojy G Varghese <jojyv@juniper.net>
[Guenter Roeck: updated description]
Signed-off-by: Guenter Roeck <groeck@juniper.net>
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
---
 arch/powerpc/kernel/traps.c   | 3 ++-
 arch/powerpc/sysdev/fsl_pci.c | 5 +++++
 2 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
index 0dc43f9..ecb709b 100644
--- a/arch/powerpc/kernel/traps.c
+++ b/arch/powerpc/kernel/traps.c
@@ -494,7 +494,8 @@ int machine_check_e500mc(struct pt_regs *regs)
 	int recoverable = 1;
 
 	if (reason & MCSR_LD) {
-		recoverable = fsl_rio_mcheck_exception(regs);
+		recoverable = fsl_rio_mcheck_exception(regs) ||
+			fsl_pci_mcheck_exception(regs);
 		if (recoverable == 1)
 			goto silent_out;
 	}
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
index c507767..bdb956b 100644
--- a/arch/powerpc/sysdev/fsl_pci.c
+++ b/arch/powerpc/sysdev/fsl_pci.c
@@ -1021,6 +1021,11 @@ int fsl_pci_mcheck_exception(struct pt_regs *regs)
 #endif
 	addr += mfspr(SPRN_MCAR);
 
+#ifdef CONFIG_E5500_CPU
+	if (mfspr(SPRN_EPCR) & SPRN_EPCR_ICM)
+		addr = PFN_PHYS(vmalloc_to_pfn((void *)mfspr(SPRN_DEAR)));
+#endif
+
 	if (is_in_pci_mem_space(addr)) {
 		if (user_mode(regs)) {
 			pagefault_disable();
-- 
1.9.1

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

* Re: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-09-29 16:48 [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500 Guenter Roeck
@ 2014-09-29 18:36 ` Scott Wood
  2014-09-29 19:06   ` Guenter Roeck
  2014-10-08  3:08   ` Hongtao Jia
  0 siblings, 2 replies; 14+ messages in thread
From: Scott Wood @ 2014-09-29 18:36 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: hongtao.jia, linux-kernel, Guenter Roeck, Paul Mackerras,
	linuxppc-dev, Jojy G Varghese

On Mon, 2014-09-29 at 09:48 -0700, Guenter Roeck wrote:
> From: Jojy G Varghese <jojyv@juniper.net>
> 
> For E500MC and E5500, a machine check exception in pci(e) memory space
> crashes the kernel.
> 
> Testing shows that the MCAR(U) register is zero on a MC exception for the
> E5500 core. At the same time, DEAR register has been found to have the
> address of the faulty load address during an MC exception for this core.
> 
> This fix changes the current behavior to fixup the result register
> and instruction pointers in the case of a load operation on a faulty
> PCI address.
> 
> The changes are:
> - Added the hook to pci machine check handing to the e500mc machine check
>   exception handler.
> - For the E5500 core, load faulting address from SPRN_DEAR register.
>   As mentioned above, this is necessary because the E5500 core does not
>   report the fault address in the MCAR register.
> 
> Cc: Scott Wood <scottwood@freescale.com>
> Signed-off-by: Jojy G Varghese <jojyv@juniper.net>
> [Guenter Roeck: updated description]
> Signed-off-by: Guenter Roeck <groeck@juniper.net>
> Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> ---
>  arch/powerpc/kernel/traps.c   | 3 ++-
>  arch/powerpc/sysdev/fsl_pci.c | 5 +++++
>  2 files changed, 7 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
> index 0dc43f9..ecb709b 100644
> --- a/arch/powerpc/kernel/traps.c
> +++ b/arch/powerpc/kernel/traps.c
> @@ -494,7 +494,8 @@ int machine_check_e500mc(struct pt_regs *regs)
>  	int recoverable = 1;
>  
>  	if (reason & MCSR_LD) {
> -		recoverable = fsl_rio_mcheck_exception(regs);
> +		recoverable = fsl_rio_mcheck_exception(regs) ||
> +			fsl_pci_mcheck_exception(regs);
>  		if (recoverable == 1)
>  			goto silent_out;
>  	}
> diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
> index c507767..bdb956b 100644
> --- a/arch/powerpc/sysdev/fsl_pci.c
> +++ b/arch/powerpc/sysdev/fsl_pci.c
> @@ -1021,6 +1021,11 @@ int fsl_pci_mcheck_exception(struct pt_regs *regs)
>  #endif
>  	addr += mfspr(SPRN_MCAR);
>  
> +#ifdef CONFIG_E5500_CPU
> +	if (mfspr(SPRN_EPCR) & SPRN_EPCR_ICM)
> +		addr = PFN_PHYS(vmalloc_to_pfn((void *)mfspr(SPRN_DEAR)));
> +#endif

Kconfig tells you what hardware is supported, not what hardware you're
actually running on.

Jia Hongtao, do you know anything about this issue?  Is there an
erratum?  What chips are affected by the the erratum covered by
<http://patchwork.ozlabs.org/patch/240239/>?

Can we rely on DEAR or is this just a side effect of likely having taken
a TLB miss for the address recently?  Perhaps we should use the
instruction emulation to determine the effective address instead.

Guenter, is this patch intended to deal with an erratum or are you
covering up legitimate errors?

-Scott

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

* Re: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-09-29 18:36 ` Scott Wood
@ 2014-09-29 19:06   ` Guenter Roeck
  2014-09-29 23:03     ` Jojy Varghese
  2014-10-08  3:08   ` Hongtao Jia
  1 sibling, 1 reply; 14+ messages in thread
From: Guenter Roeck @ 2014-09-29 19:06 UTC (permalink / raw)
  To: Scott Wood
  Cc: hongtao.jia, linux-kernel, Guenter Roeck, Paul Mackerras,
	linuxppc-dev, Jojy G Varghese

On Mon, Sep 29, 2014 at 01:36:06PM -0500, Scott Wood wrote:
> On Mon, 2014-09-29 at 09:48 -0700, Guenter Roeck wrote:
> > From: Jojy G Varghese <jojyv@juniper.net>
> > 
> > For E500MC and E5500, a machine check exception in pci(e) memory space
> > crashes the kernel.
> > 
> > Testing shows that the MCAR(U) register is zero on a MC exception for the
> > E5500 core. At the same time, DEAR register has been found to have the
> > address of the faulty load address during an MC exception for this core.
> > 
> > This fix changes the current behavior to fixup the result register
> > and instruction pointers in the case of a load operation on a faulty
> > PCI address.
> > 
> > The changes are:
> > - Added the hook to pci machine check handing to the e500mc machine check
> >   exception handler.
> > - For the E5500 core, load faulting address from SPRN_DEAR register.
> >   As mentioned above, this is necessary because the E5500 core does not
> >   report the fault address in the MCAR register.
> > 
> > Cc: Scott Wood <scottwood@freescale.com>
> > Signed-off-by: Jojy G Varghese <jojyv@juniper.net>
> > [Guenter Roeck: updated description]
> > Signed-off-by: Guenter Roeck <groeck@juniper.net>
> > Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> > ---
> >  arch/powerpc/kernel/traps.c   | 3 ++-
> >  arch/powerpc/sysdev/fsl_pci.c | 5 +++++
> >  2 files changed, 7 insertions(+), 1 deletion(-)
> > 
> > diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
> > index 0dc43f9..ecb709b 100644
> > --- a/arch/powerpc/kernel/traps.c
> > +++ b/arch/powerpc/kernel/traps.c
> > @@ -494,7 +494,8 @@ int machine_check_e500mc(struct pt_regs *regs)
> >  	int recoverable = 1;
> >  
> >  	if (reason & MCSR_LD) {
> > -		recoverable = fsl_rio_mcheck_exception(regs);
> > +		recoverable = fsl_rio_mcheck_exception(regs) ||
> > +			fsl_pci_mcheck_exception(regs);
> >  		if (recoverable == 1)
> >  			goto silent_out;
> >  	}
> > diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c
> > index c507767..bdb956b 100644
> > --- a/arch/powerpc/sysdev/fsl_pci.c
> > +++ b/arch/powerpc/sysdev/fsl_pci.c
> > @@ -1021,6 +1021,11 @@ int fsl_pci_mcheck_exception(struct pt_regs *regs)
> >  #endif
> >  	addr += mfspr(SPRN_MCAR);
> >  
> > +#ifdef CONFIG_E5500_CPU
> > +	if (mfspr(SPRN_EPCR) & SPRN_EPCR_ICM)
> > +		addr = PFN_PHYS(vmalloc_to_pfn((void *)mfspr(SPRN_DEAR)));
> > +#endif
> 
> Kconfig tells you what hardware is supported, not what hardware you're
> actually running on.
> 
Hi Scott,

Good point. Jojy, guess we'll have to check if the CPU is actually an E5500.
Can you look into that ?

> Jia Hongtao, do you know anything about this issue?  Is there an
> erratum?  What chips are affected by the the erratum covered by
> <http://patchwork.ozlabs.org/patch/240239/>?
> 
We already have and use the above patch(es) in our kernel. It works fine
for E500 (P2020), but does not address E5500 (P5020/P5040).

> Can we rely on DEAR or is this just a side effect of likely having taken
> a TLB miss for the address recently?  Perhaps we should use the
> instruction emulation to determine the effective address instead.
> 
> Guenter, is this patch intended to deal with an erratum or are you
> covering up legitimate errors?
> 
Those are errors related to PCIe hotplug, and are seen with unexpected PCIe
device removals (triggered, for example, by removing power from a PCIe adapter).
The behavior we see on E5500 is quite similar to the same behavior on E500:
If unhandled, the CPU keeps executing the same instruction over and over again
if there is an error on a PCIe access and thus stalls. I don't know if this
is considered an erratum or expected behavior, but it is one we have to address
since we have to be able to handle that condition. Ultimately, we'll want to
implement PCIe error handlers for the affected drivers, but that will be a next
step.

Please let me know if you have a better solution to address this problem.

Thanks,
Guenter

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

* Re: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-09-29 19:06   ` Guenter Roeck
@ 2014-09-29 23:03     ` Jojy Varghese
  2014-09-29 23:31       ` Scott Wood
  0 siblings, 1 reply; 14+ messages in thread
From: Jojy Varghese @ 2014-09-29 23:03 UTC (permalink / raw)
  To: Guenter Roeck, Scott Wood
  Cc: hongtao.jia, Guenter Roeck, linux-kernel, Paul Mackerras, linuxppc-dev

DQoNCk9uIDkvMjkvMTQgMTI6MDYgUE0sICJHdWVudGVyIFJvZWNrIiA8bGludXhAcm9lY2stdXMu
bmV0PiB3cm90ZToNCg0KPk9uIE1vbiwgU2VwIDI5LCAyMDE0IGF0IDAxOjM2OjA2UE0gLTA1MDAs
IFNjb3R0IFdvb2Qgd3JvdGU6DQo+PiBPbiBNb24sIDIwMTQtMDktMjkgYXQgMDk6NDggLTA3MDAs
IEd1ZW50ZXIgUm9lY2sgd3JvdGU6DQo+PiA+IEZyb206IEpvankgRyBWYXJnaGVzZSA8am9qeXZA
anVuaXBlci5uZXQ+DQo+PiA+IA0KPj4gPiBGb3IgRTUwME1DIGFuZCBFNTUwMCwgYSBtYWNoaW5l
IGNoZWNrIGV4Y2VwdGlvbiBpbiBwY2koZSkgbWVtb3J5IHNwYWNlDQo+PiA+IGNyYXNoZXMgdGhl
IGtlcm5lbC4NCj4+ID4gDQo+PiA+IFRlc3Rpbmcgc2hvd3MgdGhhdCB0aGUgTUNBUihVKSByZWdp
c3RlciBpcyB6ZXJvIG9uIGEgTUMgZXhjZXB0aW9uIGZvcg0KPj50aGUNCj4+ID4gRTU1MDAgY29y
ZS4gQXQgdGhlIHNhbWUgdGltZSwgREVBUiByZWdpc3RlciBoYXMgYmVlbiBmb3VuZCB0byBoYXZl
IHRoZQ0KPj4gPiBhZGRyZXNzIG9mIHRoZSBmYXVsdHkgbG9hZCBhZGRyZXNzIGR1cmluZyBhbiBN
QyBleGNlcHRpb24gZm9yIHRoaXMNCj4+Y29yZS4NCj4+ID4gDQo+PiA+IFRoaXMgZml4IGNoYW5n
ZXMgdGhlIGN1cnJlbnQgYmVoYXZpb3IgdG8gZml4dXAgdGhlIHJlc3VsdCByZWdpc3Rlcg0KPj4g
PiBhbmQgaW5zdHJ1Y3Rpb24gcG9pbnRlcnMgaW4gdGhlIGNhc2Ugb2YgYSBsb2FkIG9wZXJhdGlv
biBvbiBhIGZhdWx0eQ0KPj4gPiBQQ0kgYWRkcmVzcy4NCj4+ID4gDQo+PiA+IFRoZSBjaGFuZ2Vz
IGFyZToNCj4+ID4gLSBBZGRlZCB0aGUgaG9vayB0byBwY2kgbWFjaGluZSBjaGVjayBoYW5kaW5n
IHRvIHRoZSBlNTAwbWMgbWFjaGluZQ0KPj5jaGVjaw0KPj4gPiAgIGV4Y2VwdGlvbiBoYW5kbGVy
Lg0KPj4gPiAtIEZvciB0aGUgRTU1MDAgY29yZSwgbG9hZCBmYXVsdGluZyBhZGRyZXNzIGZyb20g
U1BSTl9ERUFSIHJlZ2lzdGVyLg0KPj4gPiAgIEFzIG1lbnRpb25lZCBhYm92ZSwgdGhpcyBpcyBu
ZWNlc3NhcnkgYmVjYXVzZSB0aGUgRTU1MDAgY29yZSBkb2VzDQo+Pm5vdA0KPj4gPiAgIHJlcG9y
dCB0aGUgZmF1bHQgYWRkcmVzcyBpbiB0aGUgTUNBUiByZWdpc3Rlci4NCj4+ID4gDQo+PiA+IENj
OiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNjYWxlLmNvbT4NCj4+ID4gU2lnbmVkLW9mZi1i
eTogSm9qeSBHIFZhcmdoZXNlIDxqb2p5dkBqdW5pcGVyLm5ldD4NCj4+ID4gW0d1ZW50ZXIgUm9l
Y2s6IHVwZGF0ZWQgZGVzY3JpcHRpb25dDQo+PiA+IFNpZ25lZC1vZmYtYnk6IEd1ZW50ZXIgUm9l
Y2sgPGdyb2Vja0BqdW5pcGVyLm5ldD4NCj4+ID4gU2lnbmVkLW9mZi1ieTogR3VlbnRlciBSb2Vj
ayA8bGludXhAcm9lY2stdXMubmV0Pg0KPj4gPiAtLS0NCj4+ID4gIGFyY2gvcG93ZXJwYy9rZXJu
ZWwvdHJhcHMuYyAgIHwgMyArKy0NCj4+ID4gIGFyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX3BjaS5j
IHwgNSArKysrKw0KPj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDEgZGVs
ZXRpb24oLSkNCj4+ID4gDQo+PiA+IGRpZmYgLS1naXQgYS9hcmNoL3Bvd2VycGMva2VybmVsL3Ry
YXBzLmMgYi9hcmNoL3Bvd2VycGMva2VybmVsL3RyYXBzLmMNCj4+ID4gaW5kZXggMGRjNDNmOS4u
ZWNiNzA5YiAxMDA2NDQNCj4+ID4gLS0tIGEvYXJjaC9wb3dlcnBjL2tlcm5lbC90cmFwcy5jDQo+
PiA+ICsrKyBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdHJhcHMuYw0KPj4gPiBAQCAtNDk0LDcgKzQ5
NCw4IEBAIGludCBtYWNoaW5lX2NoZWNrX2U1MDBtYyhzdHJ1Y3QgcHRfcmVncyAqcmVncykNCj4+
ID4gIAlpbnQgcmVjb3ZlcmFibGUgPSAxOw0KPj4gPiAgDQo+PiA+ICAJaWYgKHJlYXNvbiAmIE1D
U1JfTEQpIHsNCj4+ID4gLQkJcmVjb3ZlcmFibGUgPSBmc2xfcmlvX21jaGVja19leGNlcHRpb24o
cmVncyk7DQo+PiA+ICsJCXJlY292ZXJhYmxlID0gZnNsX3Jpb19tY2hlY2tfZXhjZXB0aW9uKHJl
Z3MpIHx8DQo+PiA+ICsJCQlmc2xfcGNpX21jaGVja19leGNlcHRpb24ocmVncyk7DQo+PiA+ICAJ
CWlmIChyZWNvdmVyYWJsZSA9PSAxKQ0KPj4gPiAgCQkJZ290byBzaWxlbnRfb3V0Ow0KPj4gPiAg
CX0NCj4+ID4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX3BjaS5jDQo+PmIv
YXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfcGNpLmMNCj4+ID4gaW5kZXggYzUwNzc2Ny4uYmRiOTU2
YiAxMDA2NDQNCj4+ID4gLS0tIGEvYXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfcGNpLmMNCj4+ID4g
KysrIGIvYXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfcGNpLmMNCj4+ID4gQEAgLTEwMjEsNiArMTAy
MSwxMSBAQCBpbnQgZnNsX3BjaV9tY2hlY2tfZXhjZXB0aW9uKHN0cnVjdCBwdF9yZWdzDQo+Pipy
ZWdzKQ0KPj4gPiAgI2VuZGlmDQo+PiA+ICAJYWRkciArPSBtZnNwcihTUFJOX01DQVIpOw0KPj4g
PiAgDQo+PiA+ICsjaWZkZWYgQ09ORklHX0U1NTAwX0NQVQ0KPj4gPiArCWlmIChtZnNwcihTUFJO
X0VQQ1IpICYgU1BSTl9FUENSX0lDTSkNCj4+ID4gKwkJYWRkciA9IFBGTl9QSFlTKHZtYWxsb2Nf
dG9fcGZuKCh2b2lkICopbWZzcHIoU1BSTl9ERUFSKSkpOw0KPj4gPiArI2VuZGlmDQo+PiANCj4+
IEtjb25maWcgdGVsbHMgeW91IHdoYXQgaGFyZHdhcmUgaXMgc3VwcG9ydGVkLCBub3Qgd2hhdCBo
YXJkd2FyZSB5b3UncmUNCj4+IGFjdHVhbGx5IHJ1bm5pbmcgb24uDQo+PiANCj5IaSBTY290dCwN
Cj4NCj5Hb29kIHBvaW50LiBKb2p5LCBndWVzcyB3ZSdsbCBoYXZlIHRvIGNoZWNrIGlmIHRoZSBD
UFUgaXMgYWN0dWFsbHkgYW4NCj5FNTUwMC4NCj5DYW4geW91IGxvb2sgaW50byB0aGF0ID8NCg0K
DQoiL3Byb2MvY3B1aW5mbyIgc2hvd3MgdGhlIGNwdSBhcyAiZTU1MDAiLiBTY290dCwgYXJlIHlv
dSBzdWdnZXN0aW5nIHRoYXQNCndlIHVzZSBhIHJ1bnRpbWUgbWV0aG9kIG9mIGRldGVybWluaW5n
IHRoZSBjcHUgdHlwZSAoY3B1X3NwZWMncyBjcHVfbmFtZQ0KZm9yDQpleGFtcGxlKS4gIA0KDQoN
Cj4NCj4+IEppYSBIb25ndGFvLCBkbyB5b3Uga25vdyBhbnl0aGluZyBhYm91dCB0aGlzIGlzc3Vl
PyAgSXMgdGhlcmUgYW4NCj4+IGVycmF0dW0/ICBXaGF0IGNoaXBzIGFyZSBhZmZlY3RlZCBieSB0
aGUgdGhlIGVycmF0dW0gY292ZXJlZCBieQ0KPj4gPGh0dHA6Ly9wYXRjaHdvcmsub3psYWJzLm9y
Zy9wYXRjaC8yNDAyMzkvPj8NCj4+IA0KPldlIGFscmVhZHkgaGF2ZSBhbmQgdXNlIHRoZSBhYm92
ZSBwYXRjaChlcykgaW4gb3VyIGtlcm5lbC4gSXQgd29ya3MgZmluZQ0KPmZvciBFNTAwIChQMjAy
MCksIGJ1dCBkb2VzIG5vdCBhZGRyZXNzIEU1NTAwIChQNTAyMC9QNTA0MCkuDQo+DQo+PiBDYW4g
d2UgcmVseSBvbiBERUFSIG9yIGlzIHRoaXMganVzdCBhIHNpZGUgZWZmZWN0IG9mIGxpa2VseSBo
YXZpbmcgdGFrZW4NCj4+IGEgVExCIG1pc3MgZm9yIHRoZSBhZGRyZXNzIHJlY2VudGx5PyAgUGVy
aGFwcyB3ZSBzaG91bGQgdXNlIHRoZQ0KPj4gaW5zdHJ1Y3Rpb24gZW11bGF0aW9uIHRvIGRldGVy
bWluZSB0aGUgZWZmZWN0aXZlIGFkZHJlc3MgaW5zdGVhZC4NCj4+IA0KPj4gR3VlbnRlciwgaXMg
dGhpcyBwYXRjaCBpbnRlbmRlZCB0byBkZWFsIHdpdGggYW4gZXJyYXR1bSBvciBhcmUgeW91DQo+
PiBjb3ZlcmluZyB1cCBsZWdpdGltYXRlIGVycm9ycz8NCj4+IA0KPlRob3NlIGFyZSBlcnJvcnMg
cmVsYXRlZCB0byBQQ0llIGhvdHBsdWcsIGFuZCBhcmUgc2VlbiB3aXRoIHVuZXhwZWN0ZWQNCj5Q
Q0llDQo+ZGV2aWNlIHJlbW92YWxzICh0cmlnZ2VyZWQsIGZvciBleGFtcGxlLCBieSByZW1vdmlu
ZyBwb3dlciBmcm9tIGEgUENJZQ0KPmFkYXB0ZXIpLg0KPlRoZSBiZWhhdmlvciB3ZSBzZWUgb24g
RTU1MDAgaXMgcXVpdGUgc2ltaWxhciB0byB0aGUgc2FtZSBiZWhhdmlvciBvbg0KPkU1MDA6DQo+
SWYgdW5oYW5kbGVkLCB0aGUgQ1BVIGtlZXBzIGV4ZWN1dGluZyB0aGUgc2FtZSBpbnN0cnVjdGlv
biBvdmVyIGFuZCBvdmVyDQo+YWdhaW4NCj5pZiB0aGVyZSBpcyBhbiBlcnJvciBvbiBhIFBDSWUg
YWNjZXNzIGFuZCB0aHVzIHN0YWxscy4gSSBkb24ndCBrbm93IGlmDQo+dGhpcw0KPmlzIGNvbnNp
ZGVyZWQgYW4gZXJyYXR1bSBvciBleHBlY3RlZCBiZWhhdmlvciwgYnV0IGl0IGlzIG9uZSB3ZSBo
YXZlIHRvDQo+YWRkcmVzcw0KPnNpbmNlIHdlIGhhdmUgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhh
dCBjb25kaXRpb24uIFVsdGltYXRlbHksIHdlJ2xsIHdhbnQNCj50bw0KPmltcGxlbWVudCBQQ0ll
IGVycm9yIGhhbmRsZXJzIGZvciB0aGUgYWZmZWN0ZWQgZHJpdmVycywgYnV0IHRoYXQgd2lsbCBi
ZQ0KPmEgbmV4dA0KPnN0ZXAuDQoNCkFjY29yZGluZyB0byB0aGUgc3BlYywgd2UgTUNBUiBpcyBz
dXBwb3NlZCB0byBob2xkIHRoZSBmYXVsdHkgZGF0YSBhZGRyZXNzDQpidXQgZm9yIDU1MDAgY29y
ZSwgd2UgZm91bmQgdGhhdCBNQ0FSIGlzIHplcm8uIFlvdSBhcmUgcmlnaHQgdGhhdCBERUFSDQpl
bnRyeSBjb3VsZA0KYmUgYSByZXN1bHRPZiBhIFRMQiBtaXNzIGJ1dCB0aGF0qfZzIHRoZSByZWdp
c3RlciB3ZSBjb3VsZCByZWx5IG9uLg0KDQpXaGF0IGRvIHlvdSBtZWFuIGJ5ICJpbnN0cnVjdGlv
biBlbXVsYXRpb24iPyBBcmUgeW91IHN1Z2dlc3RpbmcgdGhhdCB3ZQ0KZXhhbWluZSB0aGUgUkQs
IFJTIA0KcmVnaXN0ZXJzIGZvciB0aGUgaW5zdHJ1Y3Rpb24/DQoNCg0KDQo+DQo+UGxlYXNlIGxl
dCBtZSBrbm93IGlmIHlvdSBoYXZlIGEgYmV0dGVyIHNvbHV0aW9uIHRvIGFkZHJlc3MgdGhpcyBw
cm9ibGVtLg0KPg0KPlRoYW5rcywNCj5HdWVudGVyDQoNCg0KVGhhbmtzDQpKb2p5DQoNCg==

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

* Re: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-09-29 23:03     ` Jojy Varghese
@ 2014-09-29 23:31       ` Scott Wood
  2014-09-30 15:50         ` Guenter Roeck
  0 siblings, 1 reply; 14+ messages in thread
From: Scott Wood @ 2014-09-29 23:31 UTC (permalink / raw)
  To: Jojy Varghese
  Cc: hongtao.jia, linux-kernel, Guenter Roeck, Paul Mackerras,
	linuxppc-dev, Guenter Roeck

On Mon, 2014-09-29 at 23:03 +0000, Jojy Varghese wrote:
> 
> On 9/29/14 12:06 PM, "Guenter Roeck" <linux@roeck-us.net> wrote:
> 
> >On Mon, Sep 29, 2014 at 01:36:06PM -0500, Scott Wood wrote:
> >> On Mon, 2014-09-29 at 09:48 -0700, Guenter Roeck wrote:
> >> > From: Jojy G Varghese <jojyv@juniper.net>
> >> > 
> >> > For E500MC and E5500, a machine check exception in pci(e) memory space
> >> > crashes the kernel.
> >> > 
> >> > Testing shows that the MCAR(U) register is zero on a MC exception for
> >>the
> >> > E5500 core. At the same time, DEAR register has been found to have the
> >> > address of the faulty load address during an MC exception for this
> >>core.
> >> > 
> >> > This fix changes the current behavior to fixup the result register
> >> > and instruction pointers in the case of a load operation on a faulty
> >> > PCI address.
> >> > 
> >> > The changes are:
> >> > - Added the hook to pci machine check handing to the e500mc machine
> >>check
> >> >   exception handler.
> >> > - For the E5500 core, load faulting address from SPRN_DEAR register.
> >> >   As mentioned above, this is necessary because the E5500 core does
> >>not
> >> >   report the fault address in the MCAR register.
> >> > 
> >> > Cc: Scott Wood <scottwood@freescale.com>
> >> > Signed-off-by: Jojy G Varghese <jojyv@juniper.net>
> >> > [Guenter Roeck: updated description]
> >> > Signed-off-by: Guenter Roeck <groeck@juniper.net>
> >> > Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> >> > ---
> >> >  arch/powerpc/kernel/traps.c   | 3 ++-
> >> >  arch/powerpc/sysdev/fsl_pci.c | 5 +++++
> >> >  2 files changed, 7 insertions(+), 1 deletion(-)
> >> > 
> >> > diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
> >> > index 0dc43f9..ecb709b 100644
> >> > --- a/arch/powerpc/kernel/traps.c
> >> > +++ b/arch/powerpc/kernel/traps.c
> >> > @@ -494,7 +494,8 @@ int machine_check_e500mc(struct pt_regs *regs)
> >> >  	int recoverable = 1;
> >> >  
> >> >  	if (reason & MCSR_LD) {
> >> > -		recoverable = fsl_rio_mcheck_exception(regs);
> >> > +		recoverable = fsl_rio_mcheck_exception(regs) ||
> >> > +			fsl_pci_mcheck_exception(regs);
> >> >  		if (recoverable == 1)
> >> >  			goto silent_out;
> >> >  	}
> >> > diff --git a/arch/powerpc/sysdev/fsl_pci.c
> >>b/arch/powerpc/sysdev/fsl_pci.c
> >> > index c507767..bdb956b 100644
> >> > --- a/arch/powerpc/sysdev/fsl_pci.c
> >> > +++ b/arch/powerpc/sysdev/fsl_pci.c
> >> > @@ -1021,6 +1021,11 @@ int fsl_pci_mcheck_exception(struct pt_regs
> >>*regs)
> >> >  #endif
> >> >  	addr += mfspr(SPRN_MCAR);
> >> >  
> >> > +#ifdef CONFIG_E5500_CPU
> >> > +	if (mfspr(SPRN_EPCR) & SPRN_EPCR_ICM)
> >> > +		addr = PFN_PHYS(vmalloc_to_pfn((void *)mfspr(SPRN_DEAR)));
> >> > +#endif
> >> 
> >> Kconfig tells you what hardware is supported, not what hardware you're
> >> actually running on.

Plus, CONFIG_E5500_CPU may not even be set when running on an e5500, as
it is used for selecting GCC optimization settings.  You could have
CONFIG_GENERIC_CPU instead.

And the subject says "E500MC / E5500", not just "E5500". :-)

> >Hi Scott,
> >
> >Good point. Jojy, guess we'll have to check if the CPU is actually an
> >E5500.
> >Can you look into that ?
> 
> 
> "/proc/cpuinfo" shows the cpu as "e5500". Scott, are you suggesting that
> we use a runtime method of determining the cpu type (cpu_spec's cpu_name
> for
> example).  

Yes, if there's a bug to be worked around, and we don't want to apply
the workaround unconditionally, you should use PVR to determine whether
you're running on an affected core.

> >> Can we rely on DEAR or is this just a side effect of likely having taken
> >> a TLB miss for the address recently?  Perhaps we should use the
> >> instruction emulation to determine the effective address instead.
> >> 
> >> Guenter, is this patch intended to deal with an erratum or are you
> >> covering up legitimate errors?
> >> 
>
> >Those are errors related to PCIe hotplug, and are seen with unexpected
> >PCIe
> >device removals (triggered, for example, by removing power from a PCIe
> >adapter).
> >The behavior we see on E5500 is quite similar to the same behavior on
> >E500:
> >If unhandled, the CPU keeps executing the same instruction over and over
> >again
> >if there is an error on a PCIe access and thus stalls. I don't know if
> >this
> >is considered an erratum or expected behavior, but it is one we have to
> >address
> >since we have to be able to handle that condition. 

The reason I ask is that the handling for e500 was described as an
erratum workaround.  If it is an erratum it would be nice to know the
erratum number and the full list of affected chips.

> >Ultimately, we'll want
> >to
> >implement PCIe error handlers for the affected drivers, but that will be
> >a next
> >step.

For now can we at least print a ratelimited error message?  I don't like
the idea of silently ignoring these errors.  I suppose it's a separate
issue from extending the workaround to cover e500mc, though.

> According to the spec, we MCAR is supposed to hold the faulty data address
> but for 5500 core, we found that MCAR is zero.

Which specific chip and revision did you see this on?  What is the value
in MCSR?

> You are right that DEAR entry could
> be a resultOf a TLB miss but that¹s the register we could rely on.

If it's the result of a previous TLB miss then we can't rely on it.  The
translation might have been loaded into the TLB before the hotplug
event, or there might have been an interrupt between loading the
translation into the TLB and using the translation.

> What do you mean by "instruction emulation"? 

mcheck_handle_load()

> Are you suggesting that we
> examine the RD, RS 
> registers for the instruction?

Yes, if we don't have a simpler reliable source of the address.

-Scott

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

* Re: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-09-29 23:31       ` Scott Wood
@ 2014-09-30 15:50         ` Guenter Roeck
  2014-09-30 20:15           ` Jojy Varghese
  2014-10-01  0:43           ` Scott Wood
  0 siblings, 2 replies; 14+ messages in thread
From: Guenter Roeck @ 2014-09-30 15:50 UTC (permalink / raw)
  To: Scott Wood
  Cc: hongtao.jia, linux-kernel, Guenter Roeck, Paul Mackerras,
	linuxppc-dev, Jojy Varghese

On Mon, Sep 29, 2014 at 06:31:06PM -0500, Scott Wood wrote:
> On Mon, 2014-09-29 at 23:03 +0000, Jojy Varghese wrote:
> > 
> > On 9/29/14 12:06 PM, "Guenter Roeck" <linux@roeck-us.net> wrote:
> > 
> > >On Mon, Sep 29, 2014 at 01:36:06PM -0500, Scott Wood wrote:
> > >> On Mon, 2014-09-29 at 09:48 -0700, Guenter Roeck wrote:
> > >> > From: Jojy G Varghese <jojyv@juniper.net>
> > >> > 
> > >> > For E500MC and E5500, a machine check exception in pci(e) memory space
> > >> > crashes the kernel.
> > >> > 
> > >> > Testing shows that the MCAR(U) register is zero on a MC exception for
> > >>the
> > >> > E5500 core. At the same time, DEAR register has been found to have the
> > >> > address of the faulty load address during an MC exception for this
> > >>core.
> > >> > 
> > >> > This fix changes the current behavior to fixup the result register
> > >> > and instruction pointers in the case of a load operation on a faulty
> > >> > PCI address.
> > >> > 
> > >> > The changes are:
> > >> > - Added the hook to pci machine check handing to the e500mc machine
> > >>check
> > >> >   exception handler.
> > >> > - For the E5500 core, load faulting address from SPRN_DEAR register.
> > >> >   As mentioned above, this is necessary because the E5500 core does
> > >>not
> > >> >   report the fault address in the MCAR register.
> > >> > 
> > >> > Cc: Scott Wood <scottwood@freescale.com>
> > >> > Signed-off-by: Jojy G Varghese <jojyv@juniper.net>
> > >> > [Guenter Roeck: updated description]
> > >> > Signed-off-by: Guenter Roeck <groeck@juniper.net>
> > >> > Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> > >> > ---
> > >> >  arch/powerpc/kernel/traps.c   | 3 ++-
> > >> >  arch/powerpc/sysdev/fsl_pci.c | 5 +++++
> > >> >  2 files changed, 7 insertions(+), 1 deletion(-)
> > >> > 
> > >> > diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
> > >> > index 0dc43f9..ecb709b 100644
> > >> > --- a/arch/powerpc/kernel/traps.c
> > >> > +++ b/arch/powerpc/kernel/traps.c
> > >> > @@ -494,7 +494,8 @@ int machine_check_e500mc(struct pt_regs *regs)
> > >> >  	int recoverable = 1;
> > >> >  
> > >> >  	if (reason & MCSR_LD) {
> > >> > -		recoverable = fsl_rio_mcheck_exception(regs);
> > >> > +		recoverable = fsl_rio_mcheck_exception(regs) ||
> > >> > +			fsl_pci_mcheck_exception(regs);
> > >> >  		if (recoverable == 1)
> > >> >  			goto silent_out;
> > >> >  	}
> > >> > diff --git a/arch/powerpc/sysdev/fsl_pci.c
> > >>b/arch/powerpc/sysdev/fsl_pci.c
> > >> > index c507767..bdb956b 100644
> > >> > --- a/arch/powerpc/sysdev/fsl_pci.c
> > >> > +++ b/arch/powerpc/sysdev/fsl_pci.c
> > >> > @@ -1021,6 +1021,11 @@ int fsl_pci_mcheck_exception(struct pt_regs
> > >>*regs)
> > >> >  #endif
> > >> >  	addr += mfspr(SPRN_MCAR);
> > >> >  
> > >> > +#ifdef CONFIG_E5500_CPU
> > >> > +	if (mfspr(SPRN_EPCR) & SPRN_EPCR_ICM)
> > >> > +		addr = PFN_PHYS(vmalloc_to_pfn((void *)mfspr(SPRN_DEAR)));
> > >> > +#endif
> > >> 
> > >> Kconfig tells you what hardware is supported, not what hardware you're
> > >> actually running on.
> 
> Plus, CONFIG_E5500_CPU may not even be set when running on an e5500, as
> it is used for selecting GCC optimization settings.  You could have
> CONFIG_GENERIC_CPU instead.
> 
> And the subject says "E500MC / E5500", not just "E5500". :-)
> 
> > >Hi Scott,
> > >
> > >Good point. Jojy, guess we'll have to check if the CPU is actually an
> > >E5500.
> > >Can you look into that ?
> > 
> > 
> > "/proc/cpuinfo" shows the cpu as "e5500". Scott, are you suggesting that
> > we use a runtime method of determining the cpu type (cpu_spec's cpu_name
> > for
> > example).  
> 
> Yes, if there's a bug to be worked around, and we don't want to apply
> the workaround unconditionally, you should use PVR to determine whether
> you're running on an affected core.
> 
> > >> Can we rely on DEAR or is this just a side effect of likely having taken
> > >> a TLB miss for the address recently?  Perhaps we should use the
> > >> instruction emulation to determine the effective address instead.
> > >> 
> > >> Guenter, is this patch intended to deal with an erratum or are you
> > >> covering up legitimate errors?
> > >> 
> >
> > >Those are errors related to PCIe hotplug, and are seen with unexpected
> > >PCIe
> > >device removals (triggered, for example, by removing power from a PCIe
> > >adapter).
> > >The behavior we see on E5500 is quite similar to the same behavior on
> > >E500:
> > >If unhandled, the CPU keeps executing the same instruction over and over
> > >again
> > >if there is an error on a PCIe access and thus stalls. I don't know if
> > >this
> > >is considered an erratum or expected behavior, but it is one we have to
> > >address
> > >since we have to be able to handle that condition. 
> 
> The reason I ask is that the handling for e500 was described as an
> erratum workaround.  If it is an erratum it would be nice to know the
> erratum number and the full list of affected chips.
> 
My understanding, which may be wrong, was that this is expected behavior,
at least for E5500. I actually thought I had seen it somewhere in the
specification (response to PCIe errors), but I don't recall where exactly.

At least for my part I am not aware of an erratum.

> > >Ultimately, we'll want
> > >to
> > >implement PCIe error handlers for the affected drivers, but that will be
> > >a next
> > >step.
> 
> For now can we at least print a ratelimited error message?  I don't like
> the idea of silently ignoring these errors.  I suppose it's a separate
> issue from extending the workaround to cover e500mc, though.
> 
I don't really like the idea of printing an error message pretty much each time
when an unexpected hotplug event occurs.

> > According to the spec, we MCAR is supposed to hold the faulty data address
> > but for 5500 core, we found that MCAR is zero.
> 
> Which specific chip and revision did you see this on?  What is the value
> in MCSR?
> 
Jojy can answer that, at least for P5020. We have seen it on P5040 as well,
though, so it is not just limited to one chip/revision.

Guenter

> > You are right that DEAR entry could
> > be a resultOf a TLB miss but that¹s the register we could rely on.
> 
> If it's the result of a previous TLB miss then we can't rely on it.  The
> translation might have been loaded into the TLB before the hotplug
> event, or there might have been an interrupt between loading the
> translation into the TLB and using the translation.
> 
> > What do you mean by "instruction emulation"? 
> 
> mcheck_handle_load()
> 
> > Are you suggesting that we
> > examine the RD, RS 
> > registers for the instruction?
> 
> Yes, if we don't have a simpler reliable source of the address.
> 
> -Scott
> 
> 

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

* Re: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-09-30 15:50         ` Guenter Roeck
@ 2014-09-30 20:15           ` Jojy Varghese
  2014-09-30 20:17             ` Scott Wood
  2014-10-01  0:43           ` Scott Wood
  1 sibling, 1 reply; 14+ messages in thread
From: Jojy Varghese @ 2014-09-30 20:15 UTC (permalink / raw)
  To: Guenter Roeck, Scott Wood
  Cc: hongtao.jia, Guenter Roeck, linux-kernel, Paul Mackerras, linuxppc-dev

DQoNCk9uIDkvMzAvMTQgODo1MCBBTSwgIkd1ZW50ZXIgUm9lY2siIDxsaW51eEByb2Vjay11cy5u
ZXQ+IHdyb3RlOg0KDQo+T24gTW9uLCBTZXAgMjksIDIwMTQgYXQgMDY6MzE6MDZQTSAtMDUwMCwg
U2NvdHQgV29vZCB3cm90ZToNCj4+IE9uIE1vbiwgMjAxNC0wOS0yOSBhdCAyMzowMyArMDAwMCwg
Sm9qeSBWYXJnaGVzZSB3cm90ZToNCj4+ID4gDQo+PiA+IE9uIDkvMjkvMTQgMTI6MDYgUE0sICJH
dWVudGVyIFJvZWNrIiA8bGludXhAcm9lY2stdXMubmV0PiB3cm90ZToNCj4+ID4gDQo+PiA+ID5P
biBNb24sIFNlcCAyOSwgMjAxNCBhdCAwMTozNjowNlBNIC0wNTAwLCBTY290dCBXb29kIHdyb3Rl
Og0KPj4gPiA+PiBPbiBNb24sIDIwMTQtMDktMjkgYXQgMDk6NDggLTA3MDAsIEd1ZW50ZXIgUm9l
Y2sgd3JvdGU6DQo+PiA+ID4+ID4gRnJvbTogSm9qeSBHIFZhcmdoZXNlIDxqb2p5dkBqdW5pcGVy
Lm5ldD4NCj4+ID4gPj4gPiANCj4+ID4gPj4gPiBGb3IgRTUwME1DIGFuZCBFNTUwMCwgYSBtYWNo
aW5lIGNoZWNrIGV4Y2VwdGlvbiBpbiBwY2koZSkgbWVtb3J5DQo+PnNwYWNlDQo+PiA+ID4+ID4g
Y3Jhc2hlcyB0aGUga2VybmVsLg0KPj4gPiA+PiA+IA0KPj4gPiA+PiA+IFRlc3Rpbmcgc2hvd3Mg
dGhhdCB0aGUgTUNBUihVKSByZWdpc3RlciBpcyB6ZXJvIG9uIGEgTUMNCj4+ZXhjZXB0aW9uIGZv
cg0KPj4gPiA+PnRoZQ0KPj4gPiA+PiA+IEU1NTAwIGNvcmUuIEF0IHRoZSBzYW1lIHRpbWUsIERF
QVIgcmVnaXN0ZXIgaGFzIGJlZW4gZm91bmQgdG8NCj4+aGF2ZSB0aGUNCj4+ID4gPj4gPiBhZGRy
ZXNzIG9mIHRoZSBmYXVsdHkgbG9hZCBhZGRyZXNzIGR1cmluZyBhbiBNQyBleGNlcHRpb24gZm9y
DQo+PnRoaXMNCj4+ID4gPj5jb3JlLg0KPj4gPiA+PiA+IA0KPj4gPiA+PiA+IFRoaXMgZml4IGNo
YW5nZXMgdGhlIGN1cnJlbnQgYmVoYXZpb3IgdG8gZml4dXAgdGhlIHJlc3VsdA0KPj5yZWdpc3Rl
cg0KPj4gPiA+PiA+IGFuZCBpbnN0cnVjdGlvbiBwb2ludGVycyBpbiB0aGUgY2FzZSBvZiBhIGxv
YWQgb3BlcmF0aW9uIG9uIGENCj4+ZmF1bHR5DQo+PiA+ID4+ID4gUENJIGFkZHJlc3MuDQo+PiA+
ID4+ID4gDQo+PiA+ID4+ID4gVGhlIGNoYW5nZXMgYXJlOg0KPj4gPiA+PiA+IC0gQWRkZWQgdGhl
IGhvb2sgdG8gcGNpIG1hY2hpbmUgY2hlY2sgaGFuZGluZyB0byB0aGUgZTUwMG1jDQo+Pm1hY2hp
bmUNCj4+ID4gPj5jaGVjaw0KPj4gPiA+PiA+ICAgZXhjZXB0aW9uIGhhbmRsZXIuDQo+PiA+ID4+
ID4gLSBGb3IgdGhlIEU1NTAwIGNvcmUsIGxvYWQgZmF1bHRpbmcgYWRkcmVzcyBmcm9tIFNQUk5f
REVBUg0KPj5yZWdpc3Rlci4NCj4+ID4gPj4gPiAgIEFzIG1lbnRpb25lZCBhYm92ZSwgdGhpcyBp
cyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgRTU1MDAgY29yZQ0KPj5kb2VzDQo+PiA+ID4+bm90DQo+
PiA+ID4+ID4gICByZXBvcnQgdGhlIGZhdWx0IGFkZHJlc3MgaW4gdGhlIE1DQVIgcmVnaXN0ZXIu
DQo+PiA+ID4+ID4gDQo+PiA+ID4+ID4gQ2M6IFNjb3R0IFdvb2QgPHNjb3R0d29vZEBmcmVlc2Nh
bGUuY29tPg0KPj4gPiA+PiA+IFNpZ25lZC1vZmYtYnk6IEpvankgRyBWYXJnaGVzZSA8am9qeXZA
anVuaXBlci5uZXQ+DQo+PiA+ID4+ID4gW0d1ZW50ZXIgUm9lY2s6IHVwZGF0ZWQgZGVzY3JpcHRp
b25dDQo+PiA+ID4+ID4gU2lnbmVkLW9mZi1ieTogR3VlbnRlciBSb2VjayA8Z3JvZWNrQGp1bmlw
ZXIubmV0Pg0KPj4gPiA+PiA+IFNpZ25lZC1vZmYtYnk6IEd1ZW50ZXIgUm9lY2sgPGxpbnV4QHJv
ZWNrLXVzLm5ldD4NCj4+ID4gPj4gPiAtLS0NCj4+ID4gPj4gPiAgYXJjaC9wb3dlcnBjL2tlcm5l
bC90cmFwcy5jICAgfCAzICsrLQ0KPj4gPiA+PiA+ICBhcmNoL3Bvd2VycGMvc3lzZGV2L2ZzbF9w
Y2kuYyB8IDUgKysrKysNCj4+ID4gPj4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMo
KyksIDEgZGVsZXRpb24oLSkNCj4+ID4gPj4gPiANCj4+ID4gPj4gPiBkaWZmIC0tZ2l0IGEvYXJj
aC9wb3dlcnBjL2tlcm5lbC90cmFwcy5jDQo+PmIvYXJjaC9wb3dlcnBjL2tlcm5lbC90cmFwcy5j
DQo+PiA+ID4+ID4gaW5kZXggMGRjNDNmOS4uZWNiNzA5YiAxMDA2NDQNCj4+ID4gPj4gPiAtLS0g
YS9hcmNoL3Bvd2VycGMva2VybmVsL3RyYXBzLmMNCj4+ID4gPj4gPiArKysgYi9hcmNoL3Bvd2Vy
cGMva2VybmVsL3RyYXBzLmMNCj4+ID4gPj4gPiBAQCAtNDk0LDcgKzQ5NCw4IEBAIGludCBtYWNo
aW5lX2NoZWNrX2U1MDBtYyhzdHJ1Y3QgcHRfcmVncw0KPj4qcmVncykNCj4+ID4gPj4gPiAgCWlu
dCByZWNvdmVyYWJsZSA9IDE7DQo+PiA+ID4+ID4gIA0KPj4gPiA+PiA+ICAJaWYgKHJlYXNvbiAm
IE1DU1JfTEQpIHsNCj4+ID4gPj4gPiAtCQlyZWNvdmVyYWJsZSA9IGZzbF9yaW9fbWNoZWNrX2V4
Y2VwdGlvbihyZWdzKTsNCj4+ID4gPj4gPiArCQlyZWNvdmVyYWJsZSA9IGZzbF9yaW9fbWNoZWNr
X2V4Y2VwdGlvbihyZWdzKSB8fA0KPj4gPiA+PiA+ICsJCQlmc2xfcGNpX21jaGVja19leGNlcHRp
b24ocmVncyk7DQo+PiA+ID4+ID4gIAkJaWYgKHJlY292ZXJhYmxlID09IDEpDQo+PiA+ID4+ID4g
IAkJCWdvdG8gc2lsZW50X291dDsNCj4+ID4gPj4gPiAgCX0NCj4+ID4gPj4gPiBkaWZmIC0tZ2l0
IGEvYXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfcGNpLmMNCj4+ID4gPj5iL2FyY2gvcG93ZXJwYy9z
eXNkZXYvZnNsX3BjaS5jDQo+PiA+ID4+ID4gaW5kZXggYzUwNzc2Ny4uYmRiOTU2YiAxMDA2NDQN
Cj4+ID4gPj4gPiAtLS0gYS9hcmNoL3Bvd2VycGMvc3lzZGV2L2ZzbF9wY2kuYw0KPj4gPiA+PiA+
ICsrKyBiL2FyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX3BjaS5jDQo+PiA+ID4+ID4gQEAgLTEwMjEs
NiArMTAyMSwxMSBAQCBpbnQgZnNsX3BjaV9tY2hlY2tfZXhjZXB0aW9uKHN0cnVjdA0KPj5wdF9y
ZWdzDQo+PiA+ID4+KnJlZ3MpDQo+PiA+ID4+ID4gICNlbmRpZg0KPj4gPiA+PiA+ICAJYWRkciAr
PSBtZnNwcihTUFJOX01DQVIpOw0KPj4gPiA+PiA+ICANCj4+ID4gPj4gPiArI2lmZGVmIENPTkZJ
R19FNTUwMF9DUFUNCj4+ID4gPj4gPiArCWlmIChtZnNwcihTUFJOX0VQQ1IpICYgU1BSTl9FUENS
X0lDTSkNCj4+ID4gPj4gPiArCQlhZGRyID0gUEZOX1BIWVModm1hbGxvY190b19wZm4oKHZvaWQg
KiltZnNwcihTUFJOX0RFQVIpKSk7DQo+PiA+ID4+ID4gKyNlbmRpZg0KPj4gPiA+PiANCj4+ID4g
Pj4gS2NvbmZpZyB0ZWxscyB5b3Ugd2hhdCBoYXJkd2FyZSBpcyBzdXBwb3J0ZWQsIG5vdCB3aGF0
IGhhcmR3YXJlDQo+PnlvdSdyZQ0KPj4gPiA+PiBhY3R1YWxseSBydW5uaW5nIG9uLg0KPj4gDQo+
PiBQbHVzLCBDT05GSUdfRTU1MDBfQ1BVIG1heSBub3QgZXZlbiBiZSBzZXQgd2hlbiBydW5uaW5n
IG9uIGFuIGU1NTAwLCBhcw0KPj4gaXQgaXMgdXNlZCBmb3Igc2VsZWN0aW5nIEdDQyBvcHRpbWl6
YXRpb24gc2V0dGluZ3MuICBZb3UgY291bGQgaGF2ZQ0KPj4gQ09ORklHX0dFTkVSSUNfQ1BVIGlu
c3RlYWQuDQo+PiANCj4+IEFuZCB0aGUgc3ViamVjdCBzYXlzICJFNTAwTUMgLyBFNTUwMCIsIG5v
dCBqdXN0ICJFNTUwMCIuIDotKQ0KPj4gDQo+PiA+ID5IaSBTY290dCwNCj4+ID4gPg0KPj4gPiA+
R29vZCBwb2ludC4gSm9qeSwgZ3Vlc3Mgd2UnbGwgaGF2ZSB0byBjaGVjayBpZiB0aGUgQ1BVIGlz
IGFjdHVhbGx5IGFuDQo+PiA+ID5FNTUwMC4NCj4+ID4gPkNhbiB5b3UgbG9vayBpbnRvIHRoYXQg
Pw0KPj4gPiANCj4+ID4gDQo+PiA+ICIvcHJvYy9jcHVpbmZvIiBzaG93cyB0aGUgY3B1IGFzICJl
NTUwMCIuIFNjb3R0LCBhcmUgeW91IHN1Z2dlc3RpbmcNCj4+dGhhdA0KPj4gPiB3ZSB1c2UgYSBy
dW50aW1lIG1ldGhvZCBvZiBkZXRlcm1pbmluZyB0aGUgY3B1IHR5cGUgKGNwdV9zcGVjJ3MNCj4+
Y3B1X25hbWUNCj4+ID4gZm9yDQo+PiA+IGV4YW1wbGUpLiAgDQo+PiANCj4+IFllcywgaWYgdGhl
cmUncyBhIGJ1ZyB0byBiZSB3b3JrZWQgYXJvdW5kLCBhbmQgd2UgZG9uJ3Qgd2FudCB0byBhcHBs
eQ0KPj4gdGhlIHdvcmthcm91bmQgdW5jb25kaXRpb25hbGx5LCB5b3Ugc2hvdWxkIHVzZSBQVlIg
dG8gZGV0ZXJtaW5lIHdoZXRoZXINCj4+IHlvdSdyZSBydW5uaW5nIG9uIGFuIGFmZmVjdGVkIGNv
cmUuDQo+PiANCj4+ID4gPj4gQ2FuIHdlIHJlbHkgb24gREVBUiBvciBpcyB0aGlzIGp1c3QgYSBz
aWRlIGVmZmVjdCBvZiBsaWtlbHkgaGF2aW5nDQo+PnRha2VuDQo+PiA+ID4+IGEgVExCIG1pc3Mg
Zm9yIHRoZSBhZGRyZXNzIHJlY2VudGx5PyAgUGVyaGFwcyB3ZSBzaG91bGQgdXNlIHRoZQ0KPj4g
PiA+PiBpbnN0cnVjdGlvbiBlbXVsYXRpb24gdG8gZGV0ZXJtaW5lIHRoZSBlZmZlY3RpdmUgYWRk
cmVzcyBpbnN0ZWFkLg0KPj4gPiA+PiANCj4+ID4gPj4gR3VlbnRlciwgaXMgdGhpcyBwYXRjaCBp
bnRlbmRlZCB0byBkZWFsIHdpdGggYW4gZXJyYXR1bSBvciBhcmUgeW91DQo+PiA+ID4+IGNvdmVy
aW5nIHVwIGxlZ2l0aW1hdGUgZXJyb3JzPw0KPj4gPiA+PiANCj4+ID4NCj4+ID4gPlRob3NlIGFy
ZSBlcnJvcnMgcmVsYXRlZCB0byBQQ0llIGhvdHBsdWcsIGFuZCBhcmUgc2VlbiB3aXRoDQo+PnVu
ZXhwZWN0ZWQNCj4+ID4gPlBDSWUNCj4+ID4gPmRldmljZSByZW1vdmFscyAodHJpZ2dlcmVkLCBm
b3IgZXhhbXBsZSwgYnkgcmVtb3ZpbmcgcG93ZXIgZnJvbSBhDQo+PlBDSWUNCj4+ID4gPmFkYXB0
ZXIpLg0KPj4gPiA+VGhlIGJlaGF2aW9yIHdlIHNlZSBvbiBFNTUwMCBpcyBxdWl0ZSBzaW1pbGFy
IHRvIHRoZSBzYW1lIGJlaGF2aW9yIG9uDQo+PiA+ID5FNTAwOg0KPj4gPiA+SWYgdW5oYW5kbGVk
LCB0aGUgQ1BVIGtlZXBzIGV4ZWN1dGluZyB0aGUgc2FtZSBpbnN0cnVjdGlvbiBvdmVyIGFuZA0K
Pj5vdmVyDQo+PiA+ID5hZ2Fpbg0KPj4gPiA+aWYgdGhlcmUgaXMgYW4gZXJyb3Igb24gYSBQQ0ll
IGFjY2VzcyBhbmQgdGh1cyBzdGFsbHMuIEkgZG9uJ3Qga25vdw0KPj5pZg0KPj4gPiA+dGhpcw0K
Pj4gPiA+aXMgY29uc2lkZXJlZCBhbiBlcnJhdHVtIG9yIGV4cGVjdGVkIGJlaGF2aW9yLCBidXQg
aXQgaXMgb25lIHdlIGhhdmUNCj4+dG8NCj4+ID4gPmFkZHJlc3MNCj4+ID4gPnNpbmNlIHdlIGhh
dmUgdG8gYmUgYWJsZSB0byBoYW5kbGUgdGhhdCBjb25kaXRpb24uDQo+PiANCj4+IFRoZSByZWFz
b24gSSBhc2sgaXMgdGhhdCB0aGUgaGFuZGxpbmcgZm9yIGU1MDAgd2FzIGRlc2NyaWJlZCBhcyBh
bg0KPj4gZXJyYXR1bSB3b3JrYXJvdW5kLiAgSWYgaXQgaXMgYW4gZXJyYXR1bSBpdCB3b3VsZCBi
ZSBuaWNlIHRvIGtub3cgdGhlDQo+PiBlcnJhdHVtIG51bWJlciBhbmQgdGhlIGZ1bGwgbGlzdCBv
ZiBhZmZlY3RlZCBjaGlwcy4NCj4+IA0KPk15IHVuZGVyc3RhbmRpbmcsIHdoaWNoIG1heSBiZSB3
cm9uZywgd2FzIHRoYXQgdGhpcyBpcyBleHBlY3RlZCBiZWhhdmlvciwNCj5hdCBsZWFzdCBmb3Ig
RTU1MDAuIEkgYWN0dWFsbHkgdGhvdWdodCBJIGhhZCBzZWVuIGl0IHNvbWV3aGVyZSBpbiB0aGUN
Cj5zcGVjaWZpY2F0aW9uIChyZXNwb25zZSB0byBQQ0llIGVycm9ycyksIGJ1dCBJIGRvbid0IHJl
Y2FsbCB3aGVyZSBleGFjdGx5Lg0KPg0KPkF0IGxlYXN0IGZvciBteSBwYXJ0IEkgYW0gbm90IGF3
YXJlIG9mIGFuIGVycmF0dW0uDQo+DQo+PiA+ID5VbHRpbWF0ZWx5LCB3ZSdsbCB3YW50DQo+PiA+
ID50bw0KPj4gPiA+aW1wbGVtZW50IFBDSWUgZXJyb3IgaGFuZGxlcnMgZm9yIHRoZSBhZmZlY3Rl
ZCBkcml2ZXJzLCBidXQgdGhhdA0KPj53aWxsIGJlDQo+PiA+ID5hIG5leHQNCj4+ID4gPnN0ZXAu
DQo+PiANCj4+IEZvciBub3cgY2FuIHdlIGF0IGxlYXN0IHByaW50IGEgcmF0ZWxpbWl0ZWQgZXJy
b3IgbWVzc2FnZT8gIEkgZG9uJ3QgbGlrZQ0KPj4gdGhlIGlkZWEgb2Ygc2lsZW50bHkgaWdub3Jp
bmcgdGhlc2UgZXJyb3JzLiAgSSBzdXBwb3NlIGl0J3MgYSBzZXBhcmF0ZQ0KPj4gaXNzdWUgZnJv
bSBleHRlbmRpbmcgdGhlIHdvcmthcm91bmQgdG8gY292ZXIgZTUwMG1jLCB0aG91Z2guDQo+PiAN
Cj5JIGRvbid0IHJlYWxseSBsaWtlIHRoZSBpZGVhIG9mIHByaW50aW5nIGFuIGVycm9yIG1lc3Nh
Z2UgcHJldHR5IG11Y2gNCj5lYWNoIHRpbWUNCj53aGVuIGFuIHVuZXhwZWN0ZWQgaG90cGx1ZyBl
dmVudCBvY2N1cnMuDQo+DQo+PiA+IEFjY29yZGluZyB0byB0aGUgc3BlYywgd2UgTUNBUiBpcyBz
dXBwb3NlZCB0byBob2xkIHRoZSBmYXVsdHkgZGF0YQ0KPj5hZGRyZXNzDQo+PiA+IGJ1dCBmb3Ig
NTUwMCBjb3JlLCB3ZSBmb3VuZCB0aGF0IE1DQVIgaXMgemVyby4NCj4+IA0KPj4gV2hpY2ggc3Bl
Y2lmaWMgY2hpcCBhbmQgcmV2aXNpb24gZGlkIHlvdSBzZWUgdGhpcyBvbj8gIFdoYXQgaXMgdGhl
IHZhbHVlDQo+PiBpbiBNQ1NSPw0KPj4gDQo+Sm9qeSBjYW4gYW5zd2VyIHRoYXQsIGF0IGxlYXN0
IGZvciBQNTAyMC4gV2UgaGF2ZSBzZWVuIGl0IG9uIFA1MDQwIGFzDQo+d2VsbCwNCj50aG91Z2gs
IHNvIGl0IGlzIG5vdCBqdXN0IGxpbWl0ZWQgdG8gb25lIGNoaXAvcmV2aXNpb24uDQoNClRoZSBz
cGVjaWZpY3MgYXJlOg0KUFZSOiAweDgwMjQwMDEyDQpJbnN0cnVjdGlvbiB0aGF0IGNhdXNlcyB0
aGUgTUMgZXhjZXB0aW9uOiBsd2JyeA0KCVRoZSBmYXVsdHkgbG9hZCBhZGRyZXNzIGlzIGFsc28g
cHJlc2VudCBpbiBSQi4gU28gd2UgY291bGQgY2hhbmdlIHRoZQ0KbG9naWMgdG8gdXNlIHRoYXQg
DQppbnN0ZWFkIG9mIERFQVIuIFdoYXQgSSBkb26hr3Qga25vdyBpcyBvZiB0aGVyZSBhcmUgb3Ro
ZXIgY2FzZXMgYWxzbyB3aGljaA0KZXNjYXBlcyB0aGUgY3VycmVudCBsb2dpYy4NCg0KCQkJCQkN
CgkJCQkNCgkJCQ0KCQkNCgkNCg0KPg0KPkd1ZW50ZXINCj4NCj4+ID4gWW91IGFyZSByaWdodCB0
aGF0IERFQVIgZW50cnkgY291bGQNCj4+ID4gYmUgYSByZXN1bHRPZiBhIFRMQiBtaXNzIGJ1dCB0
aGF0qfZzIHRoZSByZWdpc3RlciB3ZSBjb3VsZCByZWx5IG9uLg0KPj4gDQo+PiBJZiBpdCdzIHRo
ZSByZXN1bHQgb2YgYSBwcmV2aW91cyBUTEIgbWlzcyB0aGVuIHdlIGNhbid0IHJlbHkgb24gaXQu
ICBUaGUNCj4+IHRyYW5zbGF0aW9uIG1pZ2h0IGhhdmUgYmVlbiBsb2FkZWQgaW50byB0aGUgVExC
IGJlZm9yZSB0aGUgaG90cGx1Zw0KPj4gZXZlbnQsIG9yIHRoZXJlIG1pZ2h0IGhhdmUgYmVlbiBh
biBpbnRlcnJ1cHQgYmV0d2VlbiBsb2FkaW5nIHRoZQ0KPj4gdHJhbnNsYXRpb24gaW50byB0aGUg
VExCIGFuZCB1c2luZyB0aGUgdHJhbnNsYXRpb24uDQo+PiANCj4+ID4gV2hhdCBkbyB5b3UgbWVh
biBieSAiaW5zdHJ1Y3Rpb24gZW11bGF0aW9uIj8NCj4+IA0KPj4gbWNoZWNrX2hhbmRsZV9sb2Fk
KCkNCj4+IA0KPj4gPiBBcmUgeW91IHN1Z2dlc3RpbmcgdGhhdCB3ZQ0KPj4gPiBleGFtaW5lIHRo
ZSBSRCwgUlMNCj4+ID4gcmVnaXN0ZXJzIGZvciB0aGUgaW5zdHJ1Y3Rpb24/DQo+PiANCj4+IFll
cywgaWYgd2UgZG9uJ3QgaGF2ZSBhIHNpbXBsZXIgcmVsaWFibGUgc291cmNlIG9mIHRoZSBhZGRy
ZXNzLg0KPj4gDQo+PiAtU2NvdHQNCj4+IA0KPj4gDQoNCg==

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

* Re: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-09-30 20:15           ` Jojy Varghese
@ 2014-09-30 20:17             ` Scott Wood
  2014-09-30 20:20               ` Jojy Varghese
  0 siblings, 1 reply; 14+ messages in thread
From: Scott Wood @ 2014-09-30 20:17 UTC (permalink / raw)
  To: Jojy Varghese
  Cc: hongtao.jia, linux-kernel, Guenter Roeck, Paul Mackerras,
	linuxppc-dev, Guenter Roeck

On Tue, 2014-09-30 at 20:15 +0000, Jojy Varghese wrote:
> 
> On 9/30/14 8:50 AM, "Guenter Roeck" <linux@roeck-us.net> wrote:
> 
> >On Mon, Sep 29, 2014 at 06:31:06PM -0500, Scott Wood wrote:
> >> Which specific chip and revision did you see this on?  What is the value
> >> in MCSR?
> >> 
> >Jojy can answer that, at least for P5020. We have seen it on P5040 as
> >well,
> >though, so it is not just limited to one chip/revision.
> 
> The specifics are:
> PVR: 0x80240012
> Instruction that causes the MC exception: lwbrx
> 	The faulty load address is also present in RB. So we could change the
> logic to use that 
> instead of DEAR. What I don’t know is of there are other cases also which
> escapes the current logic.

Could you find out what MCSR was when that happened?  I'm most
interested in whether MAV was set, but the other bits would be
interesting as well.

-Scott

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

* Re: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-09-30 20:17             ` Scott Wood
@ 2014-09-30 20:20               ` Jojy Varghese
  0 siblings, 0 replies; 14+ messages in thread
From: Jojy Varghese @ 2014-09-30 20:20 UTC (permalink / raw)
  To: Scott Wood
  Cc: hongtao.jia, linux-kernel, Guenter Roeck, Paul Mackerras,
	linuxppc-dev, Guenter Roeck



On 9/30/14 1:17 PM, "Scott Wood" <scottwood@freescale.com> wrote:

>On Tue, 2014-09-30 at 20:15 +0000, Jojy Varghese wrote:
>>=20
>> On 9/30/14 8:50 AM, "Guenter Roeck" <linux@roeck-us.net> wrote:
>>=20
>> >On Mon, Sep 29, 2014 at 06:31:06PM -0500, Scott Wood wrote:
>> >> Which specific chip and revision did you see this on?  What is the
>>value
>> >> in MCSR?
>> >>=20
>> >Jojy can answer that, at least for P5020. We have seen it on P5040 as
>> >well,
>> >though, so it is not just limited to one chip/revision.
>>=20
>> The specifics are:
>> PVR: 0x80240012
>> Instruction that causes the MC exception: lwbrx
>> 	The faulty load address is also present in RB. So we could change the
>> logic to use that
>> instead of DEAR. What I don=B9t know is of there are other cases also
>>which
>> escapes the current logic.
>
>Could you find out what MCSR was when that happened?  I'm most
>interested in whether MAV was set, but the other bits would be
>interesting as well.

MCSR=3Da000 ( Load Error Report)
>
>-Scott
>
>
Thanks
Jojy

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

* Re: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-09-30 15:50         ` Guenter Roeck
  2014-09-30 20:15           ` Jojy Varghese
@ 2014-10-01  0:43           ` Scott Wood
  2014-10-08  3:10             ` Hongtao Jia
  1 sibling, 1 reply; 14+ messages in thread
From: Scott Wood @ 2014-10-01  0:43 UTC (permalink / raw)
  To: Guenter Roeck
  Cc: hongtao.jia, linux-kernel, Guenter Roeck, Paul Mackerras,
	linuxppc-dev, Jojy Varghese

On Tue, 2014-09-30 at 08:50 -0700, Guenter Roeck wrote:
> On Mon, Sep 29, 2014 at 06:31:06PM -0500, Scott Wood wrote:
> > On Mon, 2014-09-29 at 23:03 +0000, Jojy Varghese wrote:
> > > 
> > > On 9/29/14 12:06 PM, "Guenter Roeck" <linux@roeck-us.net> wrote:
> > > 
> > > >Those are errors related to PCIe hotplug, and are seen with unexpected
> > > >PCIe
> > > >device removals (triggered, for example, by removing power from a PCIe
> > > >adapter).
> > > >The behavior we see on E5500 is quite similar to the same behavior on
> > > >E500:
> > > >If unhandled, the CPU keeps executing the same instruction over and over
> > > >again
> > > >if there is an error on a PCIe access and thus stalls. I don't know if
> > > >this
> > > >is considered an erratum or expected behavior, but it is one we have to
> > > >address
> > > >since we have to be able to handle that condition. 
> > 
> > The reason I ask is that the handling for e500 was described as an
> > erratum workaround.  If it is an erratum it would be nice to know the
> > erratum number and the full list of affected chips.
> > 
> My understanding, which may be wrong, was that this is expected behavior,
> at least for E5500. I actually thought I had seen it somewhere in the
> specification (response to PCIe errors), but I don't recall where exactly.
> 
> At least for my part I am not aware of an erratum.

Jia Hongtao, can you comment here?

> > > >Ultimately, we'll want
> > > >to
> > > >implement PCIe error handlers for the affected drivers, but that will be
> > > >a next
> > > >step.
> > 
> > For now can we at least print a ratelimited error message?  I don't like
> > the idea of silently ignoring these errors.  I suppose it's a separate
> > issue from extending the workaround to cover e500mc, though.
> > 
> I don't really like the idea of printing an error message pretty much each time
> when an unexpected hotplug event occurs.

Unexpected events seem like the sort of thing you'd want to log, but my
concern is that this might not be the only cause of PCI errors.

-Scott

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

* RE: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-09-29 18:36 ` Scott Wood
  2014-09-29 19:06   ` Guenter Roeck
@ 2014-10-08  3:08   ` Hongtao Jia
  2014-10-08 23:48     ` Scott Wood
  1 sibling, 1 reply; 14+ messages in thread
From: Hongtao Jia @ 2014-10-08  3:08 UTC (permalink / raw)
  To: Scott Wood, Guenter Roeck
  Cc: linux-kernel, Guenter Roeck, Paul Mackerras, linuxppc-dev,
	Jojy G Varghese

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV29vZCBTY290dC1CMDc0
MjENCj4gU2VudDogVHVlc2RheSwgU2VwdGVtYmVyIDMwLCAyMDE0IDI6MzYgQU0NCj4gVG86IEd1
ZW50ZXIgUm9lY2sNCj4gQ2M6IEJlbmphbWluIEhlcnJlbnNjaG1pZHQ7IFBhdWwgTWFja2VycmFz
OyBNaWNoYWVsIEVsbGVybWFuOyBsaW51eHBwYy0NCj4gZGV2QGxpc3RzLm96bGFicy5vcmc7IGxp
bnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7IEpvankgRyBWYXJnaGVzZTsNCj4gR3VlbnRlciBS
b2VjazsgSmlhIEhvbmd0YW8tQjM4OTUxDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIHBvd2VycGMv
ZnNsOiBBZGQgc3VwcG9ydCBmb3IgcGNpKGUpIG1hY2hpbmUgY2hlY2sNCj4gZXhjZXB0aW9uIG9u
IEU1MDBNQyAvIEU1NTAwDQo+IA0KPiBPbiBNb24sIDIwMTQtMDktMjkgYXQgMDk6NDggLTA3MDAs
IEd1ZW50ZXIgUm9lY2sgd3JvdGU6DQo+ID4gRnJvbTogSm9qeSBHIFZhcmdoZXNlIDxqb2p5dkBq
dW5pcGVyLm5ldD4NCj4gPg0KPiA+IEZvciBFNTAwTUMgYW5kIEU1NTAwLCBhIG1hY2hpbmUgY2hl
Y2sgZXhjZXB0aW9uIGluIHBjaShlKSBtZW1vcnkgc3BhY2UNCj4gPiBjcmFzaGVzIHRoZSBrZXJu
ZWwuDQo+ID4NCj4gPiBUZXN0aW5nIHNob3dzIHRoYXQgdGhlIE1DQVIoVSkgcmVnaXN0ZXIgaXMg
emVybyBvbiBhIE1DIGV4Y2VwdGlvbiBmb3INCj4gPiB0aGUNCj4gPiBFNTUwMCBjb3JlLiBBdCB0
aGUgc2FtZSB0aW1lLCBERUFSIHJlZ2lzdGVyIGhhcyBiZWVuIGZvdW5kIHRvIGhhdmUgdGhlDQo+
ID4gYWRkcmVzcyBvZiB0aGUgZmF1bHR5IGxvYWQgYWRkcmVzcyBkdXJpbmcgYW4gTUMgZXhjZXB0
aW9uIGZvciB0aGlzIGNvcmUuDQo+ID4NCj4gPiBUaGlzIGZpeCBjaGFuZ2VzIHRoZSBjdXJyZW50
IGJlaGF2aW9yIHRvIGZpeHVwIHRoZSByZXN1bHQgcmVnaXN0ZXIgYW5kDQo+ID4gaW5zdHJ1Y3Rp
b24gcG9pbnRlcnMgaW4gdGhlIGNhc2Ugb2YgYSBsb2FkIG9wZXJhdGlvbiBvbiBhIGZhdWx0eSBQ
Q0kNCj4gPiBhZGRyZXNzLg0KPiA+DQo+ID4gVGhlIGNoYW5nZXMgYXJlOg0KPiA+IC0gQWRkZWQg
dGhlIGhvb2sgdG8gcGNpIG1hY2hpbmUgY2hlY2sgaGFuZGluZyB0byB0aGUgZTUwMG1jIG1hY2hp
bmUNCj4gY2hlY2sNCj4gPiAgIGV4Y2VwdGlvbiBoYW5kbGVyLg0KPiA+IC0gRm9yIHRoZSBFNTUw
MCBjb3JlLCBsb2FkIGZhdWx0aW5nIGFkZHJlc3MgZnJvbSBTUFJOX0RFQVIgcmVnaXN0ZXIuDQo+
ID4gICBBcyBtZW50aW9uZWQgYWJvdmUsIHRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIEU1
NTAwIGNvcmUgZG9lcyBub3QNCj4gPiAgIHJlcG9ydCB0aGUgZmF1bHQgYWRkcmVzcyBpbiB0aGUg
TUNBUiByZWdpc3Rlci4NCj4gPg0KPiA+IENjOiBTY290dCBXb29kIDxzY290dHdvb2RAZnJlZXNj
YWxlLmNvbT4NCj4gPiBTaWduZWQtb2ZmLWJ5OiBKb2p5IEcgVmFyZ2hlc2UgPGpvanl2QGp1bmlw
ZXIubmV0PiBbR3VlbnRlciBSb2VjazoNCj4gPiB1cGRhdGVkIGRlc2NyaXB0aW9uXQ0KPiA+IFNp
Z25lZC1vZmYtYnk6IEd1ZW50ZXIgUm9lY2sgPGdyb2Vja0BqdW5pcGVyLm5ldD4NCj4gPiBTaWdu
ZWQtb2ZmLWJ5OiBHdWVudGVyIFJvZWNrIDxsaW51eEByb2Vjay11cy5uZXQ+DQo+ID4gLS0tDQo+
ID4gIGFyY2gvcG93ZXJwYy9rZXJuZWwvdHJhcHMuYyAgIHwgMyArKy0NCj4gPiAgYXJjaC9wb3dl
cnBjL3N5c2Rldi9mc2xfcGNpLmMgfCA1ICsrKysrDQo+ID4gIDIgZmlsZXMgY2hhbmdlZCwgNyBp
bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvYXJjaC9w
b3dlcnBjL2tlcm5lbC90cmFwcy5jIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC90cmFwcy5jDQo+ID4g
aW5kZXggMGRjNDNmOS4uZWNiNzA5YiAxMDA2NDQNCj4gPiAtLS0gYS9hcmNoL3Bvd2VycGMva2Vy
bmVsL3RyYXBzLmMNCj4gPiArKysgYi9hcmNoL3Bvd2VycGMva2VybmVsL3RyYXBzLmMNCj4gPiBA
QCAtNDk0LDcgKzQ5NCw4IEBAIGludCBtYWNoaW5lX2NoZWNrX2U1MDBtYyhzdHJ1Y3QgcHRfcmVn
cyAqcmVncykNCj4gPiAgCWludCByZWNvdmVyYWJsZSA9IDE7DQo+ID4NCj4gPiAgCWlmIChyZWFz
b24gJiBNQ1NSX0xEKSB7DQo+ID4gLQkJcmVjb3ZlcmFibGUgPSBmc2xfcmlvX21jaGVja19leGNl
cHRpb24ocmVncyk7DQo+ID4gKwkJcmVjb3ZlcmFibGUgPSBmc2xfcmlvX21jaGVja19leGNlcHRp
b24ocmVncykgfHwNCj4gPiArCQkJZnNsX3BjaV9tY2hlY2tfZXhjZXB0aW9uKHJlZ3MpOw0KPiA+
ICAJCWlmIChyZWNvdmVyYWJsZSA9PSAxKQ0KPiA+ICAJCQlnb3RvIHNpbGVudF9vdXQ7DQo+ID4g
IAl9DQo+ID4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX3BjaS5jDQo+ID4g
Yi9hcmNoL3Bvd2VycGMvc3lzZGV2L2ZzbF9wY2kuYyBpbmRleCBjNTA3NzY3Li5iZGI5NTZiIDEw
MDY0NA0KPiA+IC0tLSBhL2FyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX3BjaS5jDQo+ID4gKysrIGIv
YXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfcGNpLmMNCj4gPiBAQCAtMTAyMSw2ICsxMDIxLDExIEBA
IGludCBmc2xfcGNpX21jaGVja19leGNlcHRpb24oc3RydWN0IHB0X3JlZ3MNCj4gPiAqcmVncykg
ICNlbmRpZg0KPiA+ICAJYWRkciArPSBtZnNwcihTUFJOX01DQVIpOw0KPiA+DQo+ID4gKyNpZmRl
ZiBDT05GSUdfRTU1MDBfQ1BVDQo+ID4gKwlpZiAobWZzcHIoU1BSTl9FUENSKSAmIFNQUk5fRVBD
Ul9JQ00pDQo+ID4gKwkJYWRkciA9IFBGTl9QSFlTKHZtYWxsb2NfdG9fcGZuKCh2b2lkICopbWZz
cHIoU1BSTl9ERUFSKSkpOw0KPiAjZW5kaWYNCj4gDQo+IEtjb25maWcgdGVsbHMgeW91IHdoYXQg
aGFyZHdhcmUgaXMgc3VwcG9ydGVkLCBub3Qgd2hhdCBoYXJkd2FyZSB5b3UncmUNCj4gYWN0dWFs
bHkgcnVubmluZyBvbi4NCj4gDQo+IEppYSBIb25ndGFvLCBkbyB5b3Uga25vdyBhbnl0aGluZyBh
Ym91dCB0aGlzIGlzc3VlPyAgSXMgdGhlcmUgYW4gZXJyYXR1bT8NCg0KU29ycnkgZm9yIHRoZSBs
YXRlIHJlc3BvbnNlLCBJIGp1c3QgcmV0dXJuIGZyb20gbXkgdmFjYXRpb24uDQpJIGRvbid0IGtu
b3cgdGhpcyBpc3N1ZS4NCg0KPiBXaGF0IGNoaXBzIGFyZSBhZmZlY3RlZCBieSB0aGUgdGhlIGVy
cmF0dW0gY292ZXJlZCBieQ0KPiA8aHR0cDovL3BhdGNod29yay5vemxhYnMub3JnL3BhdGNoLzI0
MDIzOS8+Pw0KDQpNUEM4NTQ0LCBNUEM4NTQ4LCBNUEM4NTcyIGFyZSBhZmZlY3RlZCBieSB0aGlz
IGVycmF0dW0uDQpJIGNoZWNrZWQgUDQwODAgd2hpY2ggdXNpbmcgZTUwMG1jIGFuZCBubyBzdWNo
IGVycmF0dW0gaXMgZm91bmQuDQoNCj4gDQo+IENhbiB3ZSByZWx5IG9uIERFQVIgb3IgaXMgdGhp
cyBqdXN0IGEgc2lkZSBlZmZlY3Qgb2YgbGlrZWx5IGhhdmluZyB0YWtlbg0KPiBhIFRMQiBtaXNz
IGZvciB0aGUgYWRkcmVzcyByZWNlbnRseT8gIFBlcmhhcHMgd2Ugc2hvdWxkIHVzZSB0aGUNCj4g
aW5zdHJ1Y3Rpb24gZW11bGF0aW9uIHRvIGRldGVybWluZSB0aGUgZWZmZWN0aXZlIGFkZHJlc3Mg
aW5zdGVhZC4NCj4gDQo+IEd1ZW50ZXIsIGlzIHRoaXMgcGF0Y2ggaW50ZW5kZWQgdG8gZGVhbCB3
aXRoIGFuIGVycmF0dW0gb3IgYXJlIHlvdQ0KPiBjb3ZlcmluZyB1cCBsZWdpdGltYXRlIGVycm9y
cz8NCj4gDQo+IC1TY290dA0KPiANCg0K

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

* RE: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-10-01  0:43           ` Scott Wood
@ 2014-10-08  3:10             ` Hongtao Jia
  0 siblings, 0 replies; 14+ messages in thread
From: Hongtao Jia @ 2014-10-08  3:10 UTC (permalink / raw)
  To: Scott Wood, Guenter Roeck
  Cc: linux-kernel, Guenter Roeck, Paul Mackerras, linuxppc-dev, Jojy Varghese

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV29vZCBTY290dC1CMDc0
MjENCj4gU2VudDogV2VkbmVzZGF5LCBPY3RvYmVyIDAxLCAyMDE0IDg6NDQgQU0NCj4gVG86IEd1
ZW50ZXIgUm9lY2sNCj4gQ2M6IEpvankgVmFyZ2hlc2U7IEJlbmphbWluIEhlcnJlbnNjaG1pZHQ7
IFBhdWwgTWFja2VycmFzOyBNaWNoYWVsDQo+IEVsbGVybWFuOyBsaW51eHBwYy1kZXZAbGlzdHMu
b3psYWJzLm9yZzsgbGludXgta2VybmVsQHZnZXIua2VybmVsLm9yZzsNCj4gR3VlbnRlciBSb2Vj
azsgSmlhIEhvbmd0YW8tQjM4OTUxDQo+IFN1YmplY3Q6IFJlOiBbUEFUQ0hdIHBvd2VycGMvZnNs
OiBBZGQgc3VwcG9ydCBmb3IgcGNpKGUpIG1hY2hpbmUgY2hlY2sNCj4gZXhjZXB0aW9uIG9uIEU1
MDBNQyAvIEU1NTAwDQo+IA0KPiBPbiBUdWUsIDIwMTQtMDktMzAgYXQgMDg6NTAgLTA3MDAsIEd1
ZW50ZXIgUm9lY2sgd3JvdGU6DQo+ID4gT24gTW9uLCBTZXAgMjksIDIwMTQgYXQgMDY6MzE6MDZQ
TSAtMDUwMCwgU2NvdHQgV29vZCB3cm90ZToNCj4gPiA+IE9uIE1vbiwgMjAxNC0wOS0yOSBhdCAy
MzowMyArMDAwMCwgSm9qeSBWYXJnaGVzZSB3cm90ZToNCj4gPiA+ID4NCj4gPiA+ID4gT24gOS8y
OS8xNCAxMjowNiBQTSwgIkd1ZW50ZXIgUm9lY2siIDxsaW51eEByb2Vjay11cy5uZXQ+IHdyb3Rl
Og0KPiA+ID4gPg0KPiA+ID4gPiA+VGhvc2UgYXJlIGVycm9ycyByZWxhdGVkIHRvIFBDSWUgaG90
cGx1ZywgYW5kIGFyZSBzZWVuIHdpdGgNCj4gPiA+ID4gPnVuZXhwZWN0ZWQgUENJZSBkZXZpY2Ug
cmVtb3ZhbHMgKHRyaWdnZXJlZCwgZm9yIGV4YW1wbGUsIGJ5DQo+ID4gPiA+ID5yZW1vdmluZyBw
b3dlciBmcm9tIGEgUENJZSBhZGFwdGVyKS4NCj4gPiA+ID4gPlRoZSBiZWhhdmlvciB3ZSBzZWUg
b24gRTU1MDAgaXMgcXVpdGUgc2ltaWxhciB0byB0aGUgc2FtZQ0KPiA+ID4gPiA+YmVoYXZpb3Ig
b24NCj4gPiA+ID4gPkU1MDA6DQo+ID4gPiA+ID5JZiB1bmhhbmRsZWQsIHRoZSBDUFUga2VlcHMg
ZXhlY3V0aW5nIHRoZSBzYW1lIGluc3RydWN0aW9uIG92ZXINCj4gPiA+ID4gPmFuZCBvdmVyIGFn
YWluIGlmIHRoZXJlIGlzIGFuIGVycm9yIG9uIGEgUENJZSBhY2Nlc3MgYW5kIHRodXMNCj4gPiA+
ID4gPnN0YWxscy4gSSBkb24ndCBrbm93IGlmIHRoaXMgaXMgY29uc2lkZXJlZCBhbiBlcnJhdHVt
IG9yIGV4cGVjdGVkDQo+ID4gPiA+ID5iZWhhdmlvciwgYnV0IGl0IGlzIG9uZSB3ZSBoYXZlIHRv
IGFkZHJlc3Mgc2luY2Ugd2UgaGF2ZSB0byBiZQ0KPiA+ID4gPiA+YWJsZSB0byBoYW5kbGUgdGhh
dCBjb25kaXRpb24uDQo+ID4gPg0KPiA+ID4gVGhlIHJlYXNvbiBJIGFzayBpcyB0aGF0IHRoZSBo
YW5kbGluZyBmb3IgZTUwMCB3YXMgZGVzY3JpYmVkIGFzIGFuDQo+ID4gPiBlcnJhdHVtIHdvcmth
cm91bmQuICBJZiBpdCBpcyBhbiBlcnJhdHVtIGl0IHdvdWxkIGJlIG5pY2UgdG8ga25vdw0KPiA+
ID4gdGhlIGVycmF0dW0gbnVtYmVyIGFuZCB0aGUgZnVsbCBsaXN0IG9mIGFmZmVjdGVkIGNoaXBz
Lg0KPiA+ID4NCj4gPiBNeSB1bmRlcnN0YW5kaW5nLCB3aGljaCBtYXkgYmUgd3JvbmcsIHdhcyB0
aGF0IHRoaXMgaXMgZXhwZWN0ZWQNCj4gPiBiZWhhdmlvciwgYXQgbGVhc3QgZm9yIEU1NTAwLiBJ
IGFjdHVhbGx5IHRob3VnaHQgSSBoYWQgc2VlbiBpdA0KPiA+IHNvbWV3aGVyZSBpbiB0aGUgc3Bl
Y2lmaWNhdGlvbiAocmVzcG9uc2UgdG8gUENJZSBlcnJvcnMpLCBidXQgSSBkb24ndA0KPiByZWNh
bGwgd2hlcmUgZXhhY3RseS4NCj4gPg0KPiA+IEF0IGxlYXN0IGZvciBteSBwYXJ0IEkgYW0gbm90
IGF3YXJlIG9mIGFuIGVycmF0dW0uDQo+IA0KPiBKaWEgSG9uZ3RhbywgY2FuIHlvdSBjb21tZW50
IGhlcmU/DQoNCkkgZGlkIG5vdCBmaW5kIGFueSByZWxhdGVkIGVycmF0dW0gZWl0aGVyLg0KDQo+
IA0KPiA+ID4gPiA+VWx0aW1hdGVseSwgd2UnbGwgd2FudA0KPiA+ID4gPiA+dG8NCj4gPiA+ID4g
PmltcGxlbWVudCBQQ0llIGVycm9yIGhhbmRsZXJzIGZvciB0aGUgYWZmZWN0ZWQgZHJpdmVycywg
YnV0IHRoYXQNCj4gPiA+ID4gPndpbGwgYmUgYSBuZXh0IHN0ZXAuDQo+ID4gPg0KPiA+ID4gRm9y
IG5vdyBjYW4gd2UgYXQgbGVhc3QgcHJpbnQgYSByYXRlbGltaXRlZCBlcnJvciBtZXNzYWdlPyAg
SSBkb24ndA0KPiA+ID4gbGlrZSB0aGUgaWRlYSBvZiBzaWxlbnRseSBpZ25vcmluZyB0aGVzZSBl
cnJvcnMuICBJIHN1cHBvc2UgaXQncyBhDQo+ID4gPiBzZXBhcmF0ZSBpc3N1ZSBmcm9tIGV4dGVu
ZGluZyB0aGUgd29ya2Fyb3VuZCB0byBjb3ZlciBlNTAwbWMsIHRob3VnaC4NCj4gPiA+DQo+ID4g
SSBkb24ndCByZWFsbHkgbGlrZSB0aGUgaWRlYSBvZiBwcmludGluZyBhbiBlcnJvciBtZXNzYWdl
IHByZXR0eSBtdWNoDQo+ID4gZWFjaCB0aW1lIHdoZW4gYW4gdW5leHBlY3RlZCBob3RwbHVnIGV2
ZW50IG9jY3Vycy4NCj4gDQo+IFVuZXhwZWN0ZWQgZXZlbnRzIHNlZW0gbGlrZSB0aGUgc29ydCBv
ZiB0aGluZyB5b3UnZCB3YW50IHRvIGxvZywgYnV0IG15DQo+IGNvbmNlcm4gaXMgdGhhdCB0aGlz
IG1pZ2h0IG5vdCBiZSB0aGUgb25seSBjYXVzZSBvZiBQQ0kgZXJyb3JzLg0KPiANCj4gLVNjb3R0
DQo+IA0KDQo=

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

* Re: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-10-08  3:08   ` Hongtao Jia
@ 2014-10-08 23:48     ` Scott Wood
  2014-10-09  2:18       ` Hongtao Jia
  0 siblings, 1 reply; 14+ messages in thread
From: Scott Wood @ 2014-10-08 23:48 UTC (permalink / raw)
  To: Jia Hongtao-B38951
  Cc: linux-kernel, Guenter Roeck, Paul Mackerras, linuxppc-dev,
	Guenter Roeck, Jojy G Varghese

On Tue, 2014-10-07 at 22:08 -0500, Jia Hongtao-B38951 wrote:
> 
> > -----Original Message-----
> > From: Wood Scott-B07421
> > Sent: Tuesday, September 30, 2014 2:36 AM
> > To: Guenter Roeck
> > Cc: Benjamin Herrenschmidt; Paul Mackerras; Michael Ellerman; linuxppc-
> > dev@lists.ozlabs.org; linux-kernel@vger.kernel.org; Jojy G Varghese;
> > Guenter Roeck; Jia Hongtao-B38951
> > Subject: Re: [PATCH] powerpc/fsl: Add support for pci(e) machine check
> > exception on E500MC / E5500
> > 
> > On Mon, 2014-09-29 at 09:48 -0700, Guenter Roeck wrote:
> > > From: Jojy G Varghese <jojyv@juniper.net>
> > >
> > > For E500MC and E5500, a machine check exception in pci(e) memory space
> > > crashes the kernel.
> > >
> > > Testing shows that the MCAR(U) register is zero on a MC exception for
> > > the
> > > E5500 core. At the same time, DEAR register has been found to have the
> > > address of the faulty load address during an MC exception for this core.
> > >
> > > This fix changes the current behavior to fixup the result register and
> > > instruction pointers in the case of a load operation on a faulty PCI
> > > address.
> > >
> > > The changes are:
> > > - Added the hook to pci machine check handing to the e500mc machine
> > check
> > >   exception handler.
> > > - For the E5500 core, load faulting address from SPRN_DEAR register.
> > >   As mentioned above, this is necessary because the E5500 core does not
> > >   report the fault address in the MCAR register.
> > >
> > > Cc: Scott Wood <scottwood@freescale.com>
> > > Signed-off-by: Jojy G Varghese <jojyv@juniper.net> [Guenter Roeck:
> > > updated description]
> > > Signed-off-by: Guenter Roeck <groeck@juniper.net>
> > > Signed-off-by: Guenter Roeck <linux@roeck-us.net>
> > > ---
> > >  arch/powerpc/kernel/traps.c   | 3 ++-
> > >  arch/powerpc/sysdev/fsl_pci.c | 5 +++++
> > >  2 files changed, 7 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
> > > index 0dc43f9..ecb709b 100644
> > > --- a/arch/powerpc/kernel/traps.c
> > > +++ b/arch/powerpc/kernel/traps.c
> > > @@ -494,7 +494,8 @@ int machine_check_e500mc(struct pt_regs *regs)
> > >  	int recoverable = 1;
> > >
> > >  	if (reason & MCSR_LD) {
> > > -		recoverable = fsl_rio_mcheck_exception(regs);
> > > +		recoverable = fsl_rio_mcheck_exception(regs) ||
> > > +			fsl_pci_mcheck_exception(regs);
> > >  		if (recoverable == 1)
> > >  			goto silent_out;
> > >  	}
> > > diff --git a/arch/powerpc/sysdev/fsl_pci.c
> > > b/arch/powerpc/sysdev/fsl_pci.c index c507767..bdb956b 100644
> > > --- a/arch/powerpc/sysdev/fsl_pci.c
> > > +++ b/arch/powerpc/sysdev/fsl_pci.c
> > > @@ -1021,6 +1021,11 @@ int fsl_pci_mcheck_exception(struct pt_regs
> > > *regs)  #endif
> > >  	addr += mfspr(SPRN_MCAR);
> > >
> > > +#ifdef CONFIG_E5500_CPU
> > > +	if (mfspr(SPRN_EPCR) & SPRN_EPCR_ICM)
> > > +		addr = PFN_PHYS(vmalloc_to_pfn((void *)mfspr(SPRN_DEAR)));
> > #endif
> > 
> > Kconfig tells you what hardware is supported, not what hardware you're
> > actually running on.
> > 
> > Jia Hongtao, do you know anything about this issue?  Is there an erratum?
> 
> Sorry for the late response, I just return from my vacation.
> I don't know this issue.
> 
> > What chips are affected by the the erratum covered by
> > <http://patchwork.ozlabs.org/patch/240239/>?
> 
> MPC8544, MPC8548, MPC8572 are affected by this erratum.

What is the erratum number?

> I checked P4080 which using e500mc and no such erratum is found.

What is the erratum behavior, and how does it differ from the problem
that Jojy and Guenter are trying to solve?

-Scott

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

* RE: [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500
  2014-10-08 23:48     ` Scott Wood
@ 2014-10-09  2:18       ` Hongtao Jia
  0 siblings, 0 replies; 14+ messages in thread
From: Hongtao Jia @ 2014-10-09  2:18 UTC (permalink / raw)
  To: Scott Wood
  Cc: linux-kernel, Guenter Roeck, Paul Mackerras, linuxppc-dev,
	Guenter Roeck, Jojy G Varghese

DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogV29vZCBTY290dC1CMDc0
MjENCj4gU2VudDogVGh1cnNkYXksIE9jdG9iZXIgMDksIDIwMTQgNzo0OCBBTQ0KPiBUbzogSmlh
IEhvbmd0YW8tQjM4OTUxDQo+IENjOiBHdWVudGVyIFJvZWNrOyBCZW5qYW1pbiBIZXJyZW5zY2ht
aWR0OyBQYXVsIE1hY2tlcnJhczsgTWljaGFlbA0KPiBFbGxlcm1hbjsgbGludXhwcGMtZGV2QGxp
c3RzLm96bGFicy5vcmc7IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmc7DQo+IEpvankgRyBW
YXJnaGVzZTsgR3VlbnRlciBSb2Vjaw0KPiBTdWJqZWN0OiBSZTogW1BBVENIXSBwb3dlcnBjL2Zz
bDogQWRkIHN1cHBvcnQgZm9yIHBjaShlKSBtYWNoaW5lIGNoZWNrDQo+IGV4Y2VwdGlvbiBvbiBF
NTAwTUMgLyBFNTUwMA0KPiANCj4gT24gVHVlLCAyMDE0LTEwLTA3IGF0IDIyOjA4IC0wNTAwLCBK
aWEgSG9uZ3Rhby1CMzg5NTEgd3JvdGU6DQo+ID4NCj4gPiA+IC0tLS0tT3JpZ2luYWwgTWVzc2Fn
ZS0tLS0tDQo+ID4gPiBGcm9tOiBXb29kIFNjb3R0LUIwNzQyMQ0KPiA+ID4gU2VudDogVHVlc2Rh
eSwgU2VwdGVtYmVyIDMwLCAyMDE0IDI6MzYgQU0NCj4gPiA+IFRvOiBHdWVudGVyIFJvZWNrDQo+
ID4gPiBDYzogQmVuamFtaW4gSGVycmVuc2NobWlkdDsgUGF1bCBNYWNrZXJyYXM7IE1pY2hhZWwg
RWxsZXJtYW47DQo+ID4gPiBsaW51eHBwYy0gZGV2QGxpc3RzLm96bGFicy5vcmc7IGxpbnV4LWtl
cm5lbEB2Z2VyLmtlcm5lbC5vcmc7IEpvankgRw0KPiA+ID4gVmFyZ2hlc2U7IEd1ZW50ZXIgUm9l
Y2s7IEppYSBIb25ndGFvLUIzODk1MQ0KPiA+ID4gU3ViamVjdDogUmU6IFtQQVRDSF0gcG93ZXJw
Yy9mc2w6IEFkZCBzdXBwb3J0IGZvciBwY2koZSkgbWFjaGluZQ0KPiA+ID4gY2hlY2sgZXhjZXB0
aW9uIG9uIEU1MDBNQyAvIEU1NTAwDQo+ID4gPg0KPiA+ID4gT24gTW9uLCAyMDE0LTA5LTI5IGF0
IDA5OjQ4IC0wNzAwLCBHdWVudGVyIFJvZWNrIHdyb3RlOg0KPiA+ID4gPiBGcm9tOiBKb2p5IEcg
VmFyZ2hlc2UgPGpvanl2QGp1bmlwZXIubmV0Pg0KPiA+ID4gPg0KPiA+ID4gPiBGb3IgRTUwME1D
IGFuZCBFNTUwMCwgYSBtYWNoaW5lIGNoZWNrIGV4Y2VwdGlvbiBpbiBwY2koZSkgbWVtb3J5DQo+
ID4gPiA+IHNwYWNlIGNyYXNoZXMgdGhlIGtlcm5lbC4NCj4gPiA+ID4NCj4gPiA+ID4gVGVzdGlu
ZyBzaG93cyB0aGF0IHRoZSBNQ0FSKFUpIHJlZ2lzdGVyIGlzIHplcm8gb24gYSBNQyBleGNlcHRp
b24NCj4gPiA+ID4gZm9yIHRoZQ0KPiA+ID4gPiBFNTUwMCBjb3JlLiBBdCB0aGUgc2FtZSB0aW1l
LCBERUFSIHJlZ2lzdGVyIGhhcyBiZWVuIGZvdW5kIHRvIGhhdmUNCj4gPiA+ID4gdGhlIGFkZHJl
c3Mgb2YgdGhlIGZhdWx0eSBsb2FkIGFkZHJlc3MgZHVyaW5nIGFuIE1DIGV4Y2VwdGlvbiBmb3IN
Cj4gdGhpcyBjb3JlLg0KPiA+ID4gPg0KPiA+ID4gPiBUaGlzIGZpeCBjaGFuZ2VzIHRoZSBjdXJy
ZW50IGJlaGF2aW9yIHRvIGZpeHVwIHRoZSByZXN1bHQgcmVnaXN0ZXINCj4gPiA+ID4gYW5kIGlu
c3RydWN0aW9uIHBvaW50ZXJzIGluIHRoZSBjYXNlIG9mIGEgbG9hZCBvcGVyYXRpb24gb24gYQ0K
PiA+ID4gPiBmYXVsdHkgUENJIGFkZHJlc3MuDQo+ID4gPiA+DQo+ID4gPiA+IFRoZSBjaGFuZ2Vz
IGFyZToNCj4gPiA+ID4gLSBBZGRlZCB0aGUgaG9vayB0byBwY2kgbWFjaGluZSBjaGVjayBoYW5k
aW5nIHRvIHRoZSBlNTAwbWMNCj4gPiA+ID4gbWFjaGluZQ0KPiA+ID4gY2hlY2sNCj4gPiA+ID4g
ICBleGNlcHRpb24gaGFuZGxlci4NCj4gPiA+ID4gLSBGb3IgdGhlIEU1NTAwIGNvcmUsIGxvYWQg
ZmF1bHRpbmcgYWRkcmVzcyBmcm9tIFNQUk5fREVBUiByZWdpc3Rlci4NCj4gPiA+ID4gICBBcyBt
ZW50aW9uZWQgYWJvdmUsIHRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIEU1NTAwIGNvcmUg
ZG9lcw0KPiBub3QNCj4gPiA+ID4gICByZXBvcnQgdGhlIGZhdWx0IGFkZHJlc3MgaW4gdGhlIE1D
QVIgcmVnaXN0ZXIuDQo+ID4gPiA+DQo+ID4gPiA+IENjOiBTY290dCBXb29kIDxzY290dHdvb2RA
ZnJlZXNjYWxlLmNvbT4NCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogSm9qeSBHIFZhcmdoZXNlIDxq
b2p5dkBqdW5pcGVyLm5ldD4gW0d1ZW50ZXIgUm9lY2s6DQo+ID4gPiA+IHVwZGF0ZWQgZGVzY3Jp
cHRpb25dDQo+ID4gPiA+IFNpZ25lZC1vZmYtYnk6IEd1ZW50ZXIgUm9lY2sgPGdyb2Vja0BqdW5p
cGVyLm5ldD4NCj4gPiA+ID4gU2lnbmVkLW9mZi1ieTogR3VlbnRlciBSb2VjayA8bGludXhAcm9l
Y2stdXMubmV0Pg0KPiA+ID4gPiAtLS0NCj4gPiA+ID4gIGFyY2gvcG93ZXJwYy9rZXJuZWwvdHJh
cHMuYyAgIHwgMyArKy0NCj4gPiA+ID4gIGFyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX3BjaS5jIHwg
NSArKysrKw0KPiA+ID4gPiAgMiBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDEgZGVs
ZXRpb24oLSkNCj4gPiA+ID4NCj4gPiA+ID4gZGlmZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9rZXJu
ZWwvdHJhcHMuYw0KPiA+ID4gPiBiL2FyY2gvcG93ZXJwYy9rZXJuZWwvdHJhcHMuYyBpbmRleCAw
ZGM0M2Y5Li5lY2I3MDliIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9hcmNoL3Bvd2VycGMva2VybmVs
L3RyYXBzLmMNCj4gPiA+ID4gKysrIGIvYXJjaC9wb3dlcnBjL2tlcm5lbC90cmFwcy5jDQo+ID4g
PiA+IEBAIC00OTQsNyArNDk0LDggQEAgaW50IG1hY2hpbmVfY2hlY2tfZTUwMG1jKHN0cnVjdCBw
dF9yZWdzICpyZWdzKQ0KPiA+ID4gPiAgCWludCByZWNvdmVyYWJsZSA9IDE7DQo+ID4gPiA+DQo+
ID4gPiA+ICAJaWYgKHJlYXNvbiAmIE1DU1JfTEQpIHsNCj4gPiA+ID4gLQkJcmVjb3ZlcmFibGUg
PSBmc2xfcmlvX21jaGVja19leGNlcHRpb24ocmVncyk7DQo+ID4gPiA+ICsJCXJlY292ZXJhYmxl
ID0gZnNsX3Jpb19tY2hlY2tfZXhjZXB0aW9uKHJlZ3MpIHx8DQo+ID4gPiA+ICsJCQlmc2xfcGNp
X21jaGVja19leGNlcHRpb24ocmVncyk7DQo+ID4gPiA+ICAJCWlmIChyZWNvdmVyYWJsZSA9PSAx
KQ0KPiA+ID4gPiAgCQkJZ290byBzaWxlbnRfb3V0Ow0KPiA+ID4gPiAgCX0NCj4gPiA+ID4gZGlm
ZiAtLWdpdCBhL2FyY2gvcG93ZXJwYy9zeXNkZXYvZnNsX3BjaS5jDQo+ID4gPiA+IGIvYXJjaC9w
b3dlcnBjL3N5c2Rldi9mc2xfcGNpLmMgaW5kZXggYzUwNzc2Ny4uYmRiOTU2YiAxMDA2NDQNCj4g
PiA+ID4gLS0tIGEvYXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfcGNpLmMNCj4gPiA+ID4gKysrIGIv
YXJjaC9wb3dlcnBjL3N5c2Rldi9mc2xfcGNpLmMNCj4gPiA+ID4gQEAgLTEwMjEsNiArMTAyMSwx
MSBAQCBpbnQgZnNsX3BjaV9tY2hlY2tfZXhjZXB0aW9uKHN0cnVjdCBwdF9yZWdzDQo+ID4gPiA+
ICpyZWdzKSAgI2VuZGlmDQo+ID4gPiA+ICAJYWRkciArPSBtZnNwcihTUFJOX01DQVIpOw0KPiA+
ID4gPg0KPiA+ID4gPiArI2lmZGVmIENPTkZJR19FNTUwMF9DUFUNCj4gPiA+ID4gKwlpZiAobWZz
cHIoU1BSTl9FUENSKSAmIFNQUk5fRVBDUl9JQ00pDQo+ID4gPiA+ICsJCWFkZHIgPSBQRk5fUEhZ
Uyh2bWFsbG9jX3RvX3Bmbigodm9pZA0KPiAqKW1mc3ByKFNQUk5fREVBUikpKTsNCj4gPiA+ICNl
bmRpZg0KPiA+ID4NCj4gPiA+IEtjb25maWcgdGVsbHMgeW91IHdoYXQgaGFyZHdhcmUgaXMgc3Vw
cG9ydGVkLCBub3Qgd2hhdCBoYXJkd2FyZQ0KPiA+ID4geW91J3JlIGFjdHVhbGx5IHJ1bm5pbmcg
b24uDQo+ID4gPg0KPiA+ID4gSmlhIEhvbmd0YW8sIGRvIHlvdSBrbm93IGFueXRoaW5nIGFib3V0
IHRoaXMgaXNzdWU/ICBJcyB0aGVyZSBhbg0KPiBlcnJhdHVtPw0KPiA+DQo+ID4gU29ycnkgZm9y
IHRoZSBsYXRlIHJlc3BvbnNlLCBJIGp1c3QgcmV0dXJuIGZyb20gbXkgdmFjYXRpb24uDQo+ID4g
SSBkb24ndCBrbm93IHRoaXMgaXNzdWUuDQo+ID4NCj4gPiA+IFdoYXQgY2hpcHMgYXJlIGFmZmVj
dGVkIGJ5IHRoZSB0aGUgZXJyYXR1bSBjb3ZlcmVkIGJ5DQo+ID4gPiA8aHR0cDovL3BhdGNod29y
ay5vemxhYnMub3JnL3BhdGNoLzI0MDIzOS8+Pw0KPiA+DQo+ID4gTVBDODU0NCwgTVBDODU0OCwg
TVBDODU3MiBhcmUgYWZmZWN0ZWQgYnkgdGhpcyBlcnJhdHVtLg0KPiANCj4gV2hhdCBpcyB0aGUg
ZXJyYXR1bSBudW1iZXI/DQoNClRoZSBudW1iZXIgb2YgdGhpcyBlcnJhdHVtIGZvciBlYWNoIGNo
aXAgaXMgbm90IGNvbnNpc3RlbnQuDQpNUEM4NTQ0OiBQQ0llIDQNCk1QQzg1NDg6IFBDSS1FeCAz
OQ0KTVBDODU3MjogUENJLUV4IDMNCg0KPiANCj4gPiBJIGNoZWNrZWQgUDQwODAgd2hpY2ggdXNp
bmcgZTUwMG1jIGFuZCBubyBzdWNoIGVycmF0dW0gaXMgZm91bmQuDQo+IA0KPiBXaGF0IGlzIHRo
ZSBlcnJhdHVtIGJlaGF2aW9yLCBhbmQgaG93IGRvZXMgaXQgZGlmZmVyIGZyb20gdGhlIHByb2Js
ZW0NCj4gdGhhdCBKb2p5IGFuZCBHdWVudGVyIGFyZSB0cnlpbmcgdG8gc29sdmU/DQoNCkhlcmUg
aXMgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJhdHVtOg0KDQoiV2hlbiBpdHMgbGluayBnb2Vz
IGRvd24sIHRoZSBQQ0kgRXhwcmVzcyBjb250cm9sbGVyIGNsZWFycyBhbGwgb3V0c3RhbmRpbmcg
dHJhbnNhY3Rpb25zIHdpdGggYW4NCmVycm9yIGluZGljYXRvciBhbmQgc2VuZHMgYSBsaW5rIGRv
d24gZXhjZXB0aW9uIHRvIHRoZSBpbnRlcnJ1cHQgY29udHJvbGxlciBpZg0KUEVYX1BNRV9NRVNf
RElTUltMREREXSA9IDAuIElmLCBob3dldmVyLCBhbnkgdHJhbnNhY3Rpb25zIGFyZSBzZW50IHRv
IHRoZSBjb250cm9sbGVyDQphZnRlciB0aGUgbGluayBkb3duIGV2ZW50LCB0aGV5IHdpbGwgYmUg
YWNjZXB0ZWQgYnkgdGhlIGNvbnRyb2xsZXIgYW5kIHdhaXQgZm9yIHRoZSBsaW5rIHRvIGNvbWUN
CmJhY2sgdXAgYmVmb3JlIHN0YXJ0aW5nIGFueSB0aW1lb3V0IGNvdW50ZXJzIChlLmcuIGNvbXBs
ZXRpb24gdGltZW91dCkuIFRoZXJlIGlzIG5vIG1lY2hhbmlzbQ0KdG8gY2FuY2VsIHRoZSBuZXcg
dHJhbnNhY3Rpb25zIHNob3J0IG9mIGEgZGV2aWNlIEhSRVNFVC4iDQoNCkZvciBlNTAwbWMgYXMg
Sm9qeSBhbmQgR3VlbnRlciBkZXNjcmliZWQgaXQncyBsaWtlIHRoZSBzYW1lIGVycmF0dW0gb24g
ZTUwMCwgbm90IDEwMCUgc3VyZS4NCg0KRm9yIGU1NTAwIEkgZG9uJ3QgcXVpdGUgdW5kZXJzdGFu
ZCB5ZXQuDQoNCj4gDQo+IC1TY290dA0KPiANCg0K

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

end of thread, other threads:[~2014-10-09  2:18 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-29 16:48 [PATCH] powerpc/fsl: Add support for pci(e) machine check exception on E500MC / E5500 Guenter Roeck
2014-09-29 18:36 ` Scott Wood
2014-09-29 19:06   ` Guenter Roeck
2014-09-29 23:03     ` Jojy Varghese
2014-09-29 23:31       ` Scott Wood
2014-09-30 15:50         ` Guenter Roeck
2014-09-30 20:15           ` Jojy Varghese
2014-09-30 20:17             ` Scott Wood
2014-09-30 20:20               ` Jojy Varghese
2014-10-01  0:43           ` Scott Wood
2014-10-08  3:10             ` Hongtao Jia
2014-10-08  3:08   ` Hongtao Jia
2014-10-08 23:48     ` Scott Wood
2014-10-09  2:18       ` Hongtao Jia

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).