Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Borislav Petkov
On Tue, Apr 11, 2017 at 01:50:02PM +, Ghannam, Yazen wrote: > We need to make sure log_error() logged the deferred error before clearing > MCA_DESTAT. I can think of a couple of ways how to do that... -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Borislav Petkov
On Tue, Apr 11, 2017 at 01:50:02PM +, Ghannam, Yazen wrote: > We need to make sure log_error() logged the deferred error before clearing > MCA_DESTAT. I can think of a couple of ways how to do that... -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Ghannam, Yazen
rnel.org > Subject: Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA > MCA_DE{STAT,ADDR} registers > > On Tue, Apr 11, 2017 at 01:32:03PM +, Ghannam, Yazen wrote: > > Yes, exactly. Deferred errors are *always* logged in the DE* registers and > > T

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Ghannam, Yazen
> -Original Message- > From: Borislav Petkov [mailto:b...@alien8.de] > Sent: Tuesday, April 11, 2017 9:36 AM > To: Ghannam, Yazen > Cc: linux-e...@vger.kernel.org; Tony Luck ; > x...@kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Borislav Petkov
On Tue, Apr 11, 2017 at 01:32:03PM +, Ghannam, Yazen wrote: > Yes, exactly. Deferred errors are *always* logged in the DE* registers and Then the solution is simple: for_each_bank() if (log_error()) { clear_msrs();

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Borislav Petkov
On Tue, Apr 11, 2017 at 01:32:03PM +, Ghannam, Yazen wrote: > Yes, exactly. Deferred errors are *always* logged in the DE* registers and Then the solution is simple: for_each_bank() if (log_error()) { clear_msrs();

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Ghannam, Yazen
rnel.org > Subject: Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA > MCA_DE{STAT,ADDR} registers > > On Tue, Apr 11, 2017 at 01:18:50PM +, Ghannam, Yazen wrote: > > So log_error() reads/clears MCA_STATUS, right? This won't affect > > MCA_DESTAT on SMCA systems. So if

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Ghannam, Yazen
> -Original Message- > From: Borislav Petkov [mailto:b...@alien8.de] > Sent: Tuesday, April 11, 2017 9:25 AM > To: Ghannam, Yazen > Cc: linux-e...@vger.kernel.org; Tony Luck ; > x...@kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Borislav Petkov
On Tue, Apr 11, 2017 at 01:18:50PM +, Ghannam, Yazen wrote: > So log_error() reads/clears MCA_STATUS, right? This won't affect MCA_DESTAT > on SMCA systems. So if we call log_error_smca() and unconditionally read > MCA_DESTAT, we will find the same deferred error that we logged in >

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Borislav Petkov
On Tue, Apr 11, 2017 at 01:18:50PM +, Ghannam, Yazen wrote: > So log_error() reads/clears MCA_STATUS, right? This won't affect MCA_DESTAT > on SMCA systems. So if we call log_error_smca() and unconditionally read > MCA_DESTAT, we will find the same deferred error that we logged in >

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Ghannam, Yazen
rnel.org > Subject: Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA > MCA_DE{STAT,ADDR} registers > > On Tue, Apr 11, 2017 at 12:53:56PM +, Ghannam, Yazen wrote: > > If we do as above then we can possibly log the same deferred error twice. > > Why twice

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Ghannam, Yazen
> -Original Message- > From: Borislav Petkov [mailto:b...@alien8.de] > Sent: Tuesday, April 11, 2017 9:12 AM > To: Ghannam, Yazen > Cc: linux-e...@vger.kernel.org; Tony Luck ; > x...@kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Borislav Petkov
On Tue, Apr 11, 2017 at 12:53:56PM +, Ghannam, Yazen wrote: > If we do as above then we can possibly log the same deferred error twice. Why twice? for_each_bank() log_error() |-> clear MSRs after logging -- Regards/Gruss, Boris. Good mailing

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Borislav Petkov
On Tue, Apr 11, 2017 at 12:53:56PM +, Ghannam, Yazen wrote: > If we do as above then we can possibly log the same deferred error twice. Why twice? for_each_bank() log_error() |-> clear MSRs after logging -- Regards/Gruss, Boris. Good mailing

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Ghannam, Yazen
rnel.org > Subject: Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA > MCA_DE{STAT,ADDR} registers > > On Fri, Apr 07, 2017 at 08:37:03PM +, Ghannam, Yazen wrote: > > CEs will get picked up by polling or if we hit a threshold. > > I think we should be pre-emptive

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-11 Thread Ghannam, Yazen
> -Original Message- > From: Borislav Petkov [mailto:b...@alien8.de] > Sent: Friday, April 07, 2017 5:35 PM > To: Ghannam, Yazen > Cc: linux-e...@vger.kernel.org; Tony Luck ; > x...@kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-07 Thread Borislav Petkov
On Fri, Apr 07, 2017 at 08:37:03PM +, Ghannam, Yazen wrote: > CEs will get picked up by polling or if we hit a threshold. I think we should be pre-emptive here and simply log the error. No use waiting until something polling finally gets its hands on it - we're looking at the signature so we

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-07 Thread Borislav Petkov
On Fri, Apr 07, 2017 at 08:37:03PM +, Ghannam, Yazen wrote: > CEs will get picked up by polling or if we hit a threshold. I think we should be pre-emptive here and simply log the error. No use waiting until something polling finally gets its hands on it - we're looking at the signature so we

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-07 Thread Ghannam, Yazen
@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA > MCA_DE{STAT,ADDR} registers > > On Wed, Apr 05, 2017 at 07:29:48PM +, Ghannam, Yazen wrote: > > If it's set, then I expect a Deferred error in MCA_STATUS since any > > Correctable Errors wil

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-07 Thread Ghannam, Yazen
> -Original Message- > From: Borislav Petkov [mailto:b...@alien8.de] > Sent: Wednesday, April 05, 2017 4:05 PM > To: Ghannam, Yazen > Cc: linux-e...@vger.kernel.org; Tony Luck ; > x...@kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Borislav Petkov
On Wed, Apr 05, 2017 at 07:29:48PM +, Ghannam, Yazen wrote: > If it's set, then I expect a Deferred error in MCA_STATUS since any > Correctable > Errors will be overwritten. Multiple bank types can generate Deferred errors > so there may also be cases where for some types a valid

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Borislav Petkov
On Wed, Apr 05, 2017 at 07:29:48PM +, Ghannam, Yazen wrote: > If it's set, then I expect a Deferred error in MCA_STATUS since any > Correctable > Errors will be overwritten. Multiple bank types can generate Deferred errors > so there may also be cases where for some types a valid

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Ghannam, Yazen
@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA > MCA_DE{STAT,ADDR} registers > > > > How does log_error() know if we can't use the normal MSRs? > > MCI_STATUS_VAL. > > > We check for MCI_STATUS_VAL in log_error(). > > Yes. > &g

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Ghannam, Yazen
> -Original Message- > From: Borislav Petkov [mailto:b...@alien8.de] > Sent: Wednesday, April 05, 2017 2:22 PM > To: Ghannam, Yazen > Cc: linux-e...@vger.kernel.org; Tony Luck ; > x...@kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Borislav Petkov
On Wed, Apr 05, 2017 at 05:53:57PM +, Ghannam, Yazen wrote: > Correct, but only on SMCA systems. On !SMCA systems you log only once anyway - you don't have DE* MSRs. > This works so I don't know why it's not okay. So I should take the code just because you have found one way that it works?

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Borislav Petkov
On Wed, Apr 05, 2017 at 05:53:57PM +, Ghannam, Yazen wrote: > Correct, but only on SMCA systems. On !SMCA systems you log only once anyway - you don't have DE* MSRs. > This works so I don't know why it's not okay. So I should take the code just because you have found one way that it works?

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Ghannam, Yazen
@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA > MCA_DE{STAT,ADDR} registers > > On Wed, Apr 05, 2017 at 05:06:19PM +, Ghannam, Yazen wrote: > > Checking if we have a valid deferred error. Since we call > > __log_error() on thresholding int

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Ghannam, Yazen
> -Original Message- > From: Borislav Petkov [mailto:b...@alien8.de] > Sent: Wednesday, April 05, 2017 1:22 PM > To: Ghannam, Yazen > Cc: linux-e...@vger.kernel.org; Tony Luck ; > x...@kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Borislav Petkov
On Wed, Apr 05, 2017 at 05:06:19PM +, Ghannam, Yazen wrote: > Checking if we have a valid deferred error. Since we call __log_error() on > thresholding interrupts too we would need to tell it which handler is calling > it to do the correct check. This is what we currently do. That's why I

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Borislav Petkov
On Wed, Apr 05, 2017 at 05:06:19PM +, Ghannam, Yazen wrote: > Checking if we have a valid deferred error. Since we call __log_error() on > thresholding interrupts too we would need to tell it which handler is calling > it to do the correct check. This is what we currently do. That's why I

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Ghannam, Yazen
@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA > MCA_DE{STAT,ADDR} registers > > > > I'd rather we keep as many checks as possible out of __log_error(). > > What checks? > Checking if we have a valid deferred error. Since we call __log_err

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Ghannam, Yazen
> -Original Message- > From: Borislav Petkov [mailto:b...@alien8.de] > Sent: Wednesday, April 05, 2017 12:45 PM > To: Ghannam, Yazen > Cc: linux-e...@vger.kernel.org; Tony Luck ; > x...@kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Borislav Petkov
On Wed, Apr 05, 2017 at 02:52:08PM +, Ghannam, Yazen wrote: > Yes, BIOS does and should set this bit. If it doesn't for some reason > then our handling in the Kernel will still be functional. We just > won't find Deferred errors in MCA_STATUS. Ok. > I'd rather we keep as many checks as

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Borislav Petkov
On Wed, Apr 05, 2017 at 02:52:08PM +, Ghannam, Yazen wrote: > Yes, BIOS does and should set this bit. If it doesn't for some reason > then our handling in the Kernel will still be functional. We just > won't find Deferred errors in MCA_STATUS. Ok. > I'd rather we keep as many checks as

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Ghannam, Yazen
@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA > MCA_DE{STAT,ADDR} registers > > On Tue, Apr 04, 2017 at 12:24:31PM -0500, Yazen Ghannam wrote: > > From: Yazen Ghannam <yazen.ghan...@amd.com> > > > > We have support for the new SMCA MCA_D

RE: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Ghannam, Yazen
> -Original Message- > From: Borislav Petkov [mailto:b...@alien8.de] > Sent: Wednesday, April 05, 2017 9:40 AM > To: Ghannam, Yazen > Cc: linux-e...@vger.kernel.org; Tony Luck ; > x...@kernel.org; linux-kernel@vger.kernel.org > Subject: Re: [PATCH v2 1/2] x86/mce/

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Borislav Petkov
On Tue, Apr 04, 2017 at 12:24:31PM -0500, Yazen Ghannam wrote: > From: Yazen Ghannam > > We have support for the new SMCA MCA_DE{STAT,ADDR} registers in Linux. So > we've used these registers in place of MCA_{STATUS,ADDR} on SMCA systems. > However, the guidance for

Re: [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers

2017-04-05 Thread Borislav Petkov
On Tue, Apr 04, 2017 at 12:24:31PM -0500, Yazen Ghannam wrote: > From: Yazen Ghannam > > We have support for the new SMCA MCA_DE{STAT,ADDR} registers in Linux. So > we've used these registers in place of MCA_{STATUS,ADDR} on SMCA systems. > However, the guidance for current implementations of