From: Ingo Molnar <mingo@elte.hu>
To: Tony Luck <tony.luck@intel.com>
Cc: linux-kernel@vger.kernel.org, Borislav Petkov <bp@amd64.org>,
"Huang, Ying" <ying.huang@intel.com>,
Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
Subject: Re: [PATCH 4/6] x86, mce: Add mechanism to safely save information in MCE handler
Date: Wed, 14 Dec 2011 08:52:10 +0100 [thread overview]
Message-ID: <20111214075210.GE25232@elte.hu> (raw)
In-Reply-To: <21784ca9d3f0a59c01c9d127a088077561616ba1.1323803130.git.tony.luck@intel.com>
* Tony Luck <tony.luck@intel.com> wrote:
> Machine checks on Intel cpus interrupt execution on all cpus, regardless
> of interrupt masking. We have a need to save some data about the cause
> of the machine check (physical address) in the machine check handler that
> can be retrieved later to attempt recovery in a more flexible execution
> state.
>
> Signed-off-by: Tony Luck <tony.luck@intel.com>
> ---
> arch/x86/kernel/cpu/mcheck/mce.c | 51 ++++++++++++++++++++++++++++++++++++++
> 1 files changed, 51 insertions(+), 0 deletions(-)
Just some cleanliness nits:
> diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
> index 43f22c8..9b83b7d 100644
> --- a/arch/x86/kernel/cpu/mcheck/mce.c
> +++ b/arch/x86/kernel/cpu/mcheck/mce.c
> @@ -887,6 +887,57 @@ static void mce_clear_state(unsigned long *toclear)
> }
>
> /*
> + * Need to save faulting physical address associated with a process
> + * in the machine check handler some place where we can grab it back
> + * later in mce_notify_process()
> + */
> +#define MAX_MCE_INFO 16
> +struct mce_info {
please separate non-bulk definitons by newlines.
> + atomic_t inuse;
> + struct task_struct *t;
> + __u64 paddr;
> +} mce_info[MAX_MCE_INFO];
> +
> +static void mce_save_info(__u64 addr)
> +{
> + int i;
that tab looks weird. [there's repeat occurances further below
as well]
> +
> + for (i = 0; i < MAX_MCE_INFO; i++)
> + if (atomic_cmpxchg(&mce_info[i].inuse, 0, 1) == 0) {
> + mce_info[i].t = current;
> + mce_info[i].paddr = addr;
> + return;
> + }
We typically use curly braces for all multi-line statements - so
two would be needed above.
> +
> + mce_panic("Too many concurrent recoverable errors", NULL, NULL);
> +}
> +
> +static int mce_find_info(__u64 *paddr)
> +{
> + int i;
> +
> + for (i = 0; i < MAX_MCE_INFO; i++)
> + if (atomic_read(&mce_info[i].inuse) &&
> + mce_info[i].t == current) {
> + *paddr = mce_info[i].paddr;
> + return 1;
> + }
> + return 0;
> +}
> +
> +static void mce_clear_info(void)
> +{
> + int i;
> +
> + for (i = 0; i < MAX_MCE_INFO; i++)
> + if (atomic_read(&mce_info[i].inuse) &&
> + mce_info[i].t == current) {
the line-break shows that the code has complexit troubles. Doing
this in the loop iterator:
struct mce_info *mi = mce_info + i;
would help make it shorter and more readable.
Thanks,
Ingo
next prev parent reply other threads:[~2011-12-14 7:54 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-13 19:05 [PATCH 0/6] x86, mce: machine check recovery for applications Tony Luck
2011-12-08 22:49 ` [PATCH 6/6] x86, mce: Recognise machine check bank signature for data path error Tony Luck
2011-12-14 15:47 ` Borislav Petkov
2011-12-12 21:06 ` [PATCH 4/6] x86, mce: Add mechanism to safely save information in MCE handler Tony Luck
2011-12-14 7:52 ` Ingo Molnar [this message]
2011-12-12 21:47 ` [PATCH 5/6] x86, mce: handle "action required" errors Tony Luck
2011-12-14 9:28 ` Chen Gong
2011-12-14 21:30 ` Tony Luck
2011-12-15 2:56 ` Chen Gong
2011-12-14 16:04 ` Borislav Petkov
2011-12-14 19:05 ` Luck, Tony
2011-12-13 17:24 ` [PATCH 1/6] HWPOISON: clean up memory_failure() vs. __memory_failure() Tony Luck
2011-12-14 7:47 ` Ingo Molnar
2011-12-14 16:07 ` Borislav Petkov
2011-12-14 16:55 ` Ingo Molnar
2011-12-14 17:21 ` Luck, Tony
2011-12-15 6:44 ` Ingo Molnar
2011-12-15 18:05 ` Tony Luck
2011-12-15 18:09 ` Ingo Molnar
2011-12-13 17:27 ` [PATCH 2/6] HWPOISON: Add code to handle "action required" errors Tony Luck
2011-12-13 17:48 ` [PATCH 3/6] x86, mce: create helper function to save addr/misc when needed Tony Luck
2011-12-16 0:13 ` Hidetoshi Seto
-- strict thread matches above, loose matches on Subject: below --
2011-12-15 19:59 [PATCH 0/6] x86, mce: machine check recovery for applications [updated] Tony Luck
2011-12-14 23:55 ` [PATCH 4/6] x86, mce: Add mechanism to safely save information in MCE handler Tony Luck
2011-12-16 0:13 ` Hidetoshi Seto
2011-12-16 8:14 ` 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=20111214075210.GE25232@elte.hu \
--to=mingo@elte.hu \
--cc=bp@amd64.org \
--cc=linux-kernel@vger.kernel.org \
--cc=seto.hidetoshi@jp.fujitsu.com \
--cc=tony.luck@intel.com \
--cc=ying.huang@intel.com \
/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.