All of lore.kernel.org
 help / color / mirror / Atom feed
From: Borislav Petkov <bp@alien8.de>
To: "Chen, Gong" <gong.chen@linux.intel.com>
Cc: tony.luck@intel.com, linux-acpi@vger.kernel.org,
	linux-mm@kvack.org, x86@kernel.org
Subject: Re: [RFC PATCH 2/3] x86, MCE: Avoid potential deadlock in MCE context
Date: Mon, 21 Jul 2014 10:47:37 +0200	[thread overview]
Message-ID: <20140721084737.GA10016@pd.tnic> (raw)
In-Reply-To: <1405478082-30757-3-git-send-email-gong.chen@linux.intel.com>

On Tue, Jul 15, 2014 at 10:34:41PM -0400, Chen, Gong wrote:
> When Uncorrected error happens, an MCE will be raised. Some
> notification callbacks will be called in MCE context. If
> some notification call printk it will cause potential
> deadlock because MCE can preempt normal interrupts like NMI does.
> 
> Since printk is not safe in MCE context. So a lock-less memory
> allocator (genpool) is used to save information which are
> organized via a lock-less list. Print will be delayed into IRQ
> context via irq_work. This idea is inspired by APEI/GHES driver.

This patch is overengineered even though we already have both process
context work and irq work facilities in place.

We also already have mce_ring where we add MCE signatures in #MC
context. Well, only for AO errors with usable addresses for now, at
least.

And we empty that ring in mce_process_work().

I think it would be a *lot* simpler if you modify the logic to put all
errors into the ring and remove the call chain call from mce_log(). I'm
looking at mce_report_event() which even does the irq_work stuff if
we need to raise an IPI *during* the MCE so that stuff gets processed
*before* we return to userspace.

-- 
Regards/Gruss,
    Boris.

Sent from a fat crate under my desk. Formatting is fine.
--

  reply	other threads:[~2014-07-21  8:47 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-16  2:34 Some RAS bug fix patches Chen, Gong
2014-07-16  2:34 ` Chen, Gong
2014-07-16  2:34 ` [PATCH 1/3] APEI, GHES: Cleanup unnecessary function for lock-less list Chen, Gong
2014-07-20  8:01   ` Borislav Petkov
2014-07-16  2:34 ` [RFC PATCH 2/3] x86, MCE: Avoid potential deadlock in MCE context Chen, Gong
2014-07-21  8:47   ` Borislav Petkov [this message]
2014-07-21 17:14     ` Luck, Tony
2014-07-21 21:41       ` Borislav Petkov
2014-07-21 22:03         ` Luck, Tony
2014-07-21 22:44           ` [RFC PATCH 2/3] x86, MCE: Avoid potential deadlock in MCE Tony Luck
2014-07-22 17:20             ` Borislav Petkov
2014-07-22 17:26           ` [RFC PATCH 2/3] x86, MCE: Avoid potential deadlock in MCE context Borislav Petkov
2014-07-22 21:24             ` Tony Luck
2014-07-23  7:48       ` Chen, Gong
2014-07-16  2:34 ` [PATCH 3/3] RAS, HWPOISON: Fix wrong error recovery status Chen, Gong
2014-07-16 19:57   ` Naoya Horiguchi
2014-07-16 19:57     ` Naoya Horiguchi
2014-07-19  8:05 ` Some RAS bug fix patches Chen, Gong

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=20140721084737.GA10016@pd.tnic \
    --to=bp@alien8.de \
    --cc=gong.chen@linux.intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-mm@kvack.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.