> -----Original Message----- > From: Borislav Petkov [mailto:b...@alien8.de] > Sent: Tuesday, April 11, 2017 9:25 AM > To: Ghannam, Yazen <yazen.ghan...@amd.com> > Cc: linux-e...@vger.kernel.org; Tony Luck <tony.l...@intel.com>; > x...@kernel.org; linux-kernel@vger.kernel.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 +0000, 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 log_error(). > > I'm reading this as, "we log the same deferred error in *both* the original > MCA MSRs and in the new DE* ones". Correct? >
Yes, exactly. Deferred errors are *always* logged in the DE* registers and they are logged in the original MSRs based on the MCA_CONFIG bit. The idea here is that if a deferred error is overwritten in MCA_STATUS we will still have a copy logged in MCA_DESTAT. Thanks, Yazen