mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: "Ghannam, Yazen" <Yazen.Ghannam@amd.com>
Cc: "linux-edac@vger.kernel.org" <linux-edac@vger.kernel.org>,
	Tony Luck <tony.luck@intel.com>,
	"x86@kernel.org" <x86@kernel.org>,
	"linux-kernel@vger.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
Date: Wed, 5 Apr 2017 22:04:30 +0200	[thread overview]
Message-ID: <20170405200430.aagtouutiqyopp7a@pd.tnic> (raw)
In-Reply-To: <BN6PR1201MB0131E84344E19543CCB2C086F80A0@BN6PR1201MB0131.namprd12.prod.outlook.com>

On Wed, Apr 05, 2017 at 07:29:48PM +0000, 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 Uncorrectable error
> happens and overwrites the Deferred error before we can handle it. In which
> case we lose the Deferred error if we don't check MCA_DESTAT.

So if we have an UE, wouldn't that raise an #MC? I guess in such cases
we should concentrate only on the deferred errors and let the #MC
handler deal with them. As we do now.

> If it's not set, then it's possible to have a valid Correctable error in MCA_STATUS
> while the valid Deferred error is in MCA_DESTAT.

What's logging the CE? We probably should log it too before something
overwrites it.

Anyway, ok, I think I know what needs to happen now:

amd_deferred_error_interrupt:

	if (__log_error_deferred(bank))
		return;

This one read MC?_STATUS and does the logging for when the deferred
error is in the normal MSRs. It returns true if it succeeded. It reads
and hands down both MC?_STATUS and MC?_ADDR to __log_error() so that it
doesn't have to read MC?_STATUS twice.

If __log_error_deferred() has read a different type of error, we still
log it? I'm not sure about this. I guess we can ignore that case for
now.

Then:

	if (mca_flags.smca)
		__log_error_deferred_smca(bank));

which handles the SMCA case. It too reads MSR_AMD64_SMCA_MCx_DESTAT
and MSR_AMD64_SMCA_MCx_DEADDR and hands them down to __log_error() for
logging.

For the __log_error() call in amd_threshold_interrupt(), you define a
log_error() wrapper which reads the default MSRs and hands them down to
__log_error().

So __log_error() always gets STATUS and ADDR MSR values and it doesn't
need to read them from the MSRs but only log them.

-- 
Regards/Gruss,
    Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.

  reply	other threads:[~2017-04-05 20:04 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-04 17:24 Yazen Ghannam
2017-04-04 17:24 ` [PATCH v2 2/2] x86/mce/AMD: Carve out SMCA bank configuration Yazen Ghannam
2017-04-05 14:19   ` Borislav Petkov
2017-04-05 13:39 ` [PATCH v2 1/2] x86/mce/AMD: Redo use of SMCA MCA_DE{STAT,ADDR} registers Borislav Petkov
2017-04-05 14:52   ` Ghannam, Yazen
2017-04-05 16:44     ` Borislav Petkov
2017-04-05 17:06       ` Ghannam, Yazen
2017-04-05 17:22         ` Borislav Petkov
2017-04-05 17:53           ` Ghannam, Yazen
2017-04-05 18:22             ` Borislav Petkov
2017-04-05 19:29               ` Ghannam, Yazen
2017-04-05 20:04                 ` Borislav Petkov [this message]
2017-04-07 20:37                   ` Ghannam, Yazen
2017-04-07 21:35                     ` Borislav Petkov
2017-04-11 12:53                       ` Ghannam, Yazen
2017-04-11 13:12                         ` Borislav Petkov
2017-04-11 13:18                           ` Ghannam, Yazen
2017-04-11 13:24                             ` Borislav Petkov
2017-04-11 13:32                               ` Ghannam, Yazen
2017-04-11 13:35                                 ` Borislav Petkov
2017-04-11 13:50                                   ` Ghannam, Yazen
2017-04-11 13:54                                     ` Borislav Petkov

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=20170405200430.aagtouutiqyopp7a@pd.tnic \
    --to=bp@alien8.de \
    --cc=Yazen.Ghannam@amd.com \
    --cc=linux-edac@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=tony.luck@intel.com \
    --cc=x86@kernel.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

all inboxes | Powered by JetHome®