linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chen Gong <gong.chen@linux.intel.com>
To: "Luck, Tony" <tony.luck@intel.com>
Cc: bp@amd64.org, x86@kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [RESEND PATCH 0/5 V2] x86: mce: Bugfixes, cleanups and a new CMCI poll version
Date: Tue, 7 Aug 2012 05:43:36 +0800	[thread overview]
Message-ID: <20120806214336.GA11726@gchen.bj.intel.com> (raw)
In-Reply-To: <501c50de151302d0d7@agluck-desktop.sc.intel.com>

[-- Attachment #1: Type: text/plain, Size: 3809 bytes --]

On Fri, Aug 03, 2012 at 03:29:50PM -0700, Luck, Tony wrote:
> Date: Fri, 03 Aug 2012 15:29:50 -0700
> From: "Luck, Tony" <tony.luck@intel.com>
> To: Chen Gong <gong.chen@linux.intel.com>
> Cc: bp@amd64.org, x86@kernel.org, linux-kernel@vger.kernel.org
> Subject: Re: [RESEND PATCH 0/5 V2] x86: mce: Bugfixes, cleanups and a new
>  CMCI poll version
> 
> I applied this series on top of v3.6-rc1 and took it for
> a test drive with a little storm of 20 corrected interrupts.
> 
> The series worked ... but the console log was entirely unhelpful
> in letting me know what had just happened to my system.  All I saw
> was:
> 
> mce: [Hardware Error]: Machine check events logged
> mce: [Hardware Error]: Machine check events logged
>     ... several seconds pass ...
> CPU 35 MCA banks CMCI:0 CMCI:1 CMCI:3 CMCI:5 CMCI:6 CMCI:7 CMCI:8 CMCI:9 CMCI:10 CMCI:11
> mce_notify_irq: 3 callbacks suppressed
> CPU 1 MCA banks CMCI:0 CMCI:1 CMCI:3
> CPU 39 MCA banks CMCI:0 CMCI:1 CMCI:3
> CPU 38 MCA banks CMCI:0 CMCI:1 CMCI:3
> CPU 32 MCA banks CMCI:0 CMCI:1 CMCI:3
> CPU 37 MCA banks CMCI:0 CMCI:1 CMCI:3
> CPU 36 MCA banks CMCI:0 CMCI:1 CMCI:3
> CPU 34 MCA banks CMCI:0 CMCI:1 CMCI:3
> mce: [Hardware Error]: Machine check events logged
> 
> No mention of the storm, no mention that we switched to polling
> mode (and so missed some of the reports). Just the cryptic output
> as the kernel re-established the CMCI on processors that had been
> affected by the storm.
> 
> I tried the patch below to log the start/end of the storm. But I
> may be doing something wrong with printk_timed_ratelimit() because
> I saw two "storm detected" and two "storm subsided" messages.

You saw two times because the injection speed is not quick enough so that
the poll timer thinks during the expected time it doesn't meet new CMC, and
then double this timer, again, no CMC... until restore for poll timer to
INT mode. Under the real situation, thousands of CMCI come in so this
situation wil not happen. In fact, during the test I met this kind of 
situations many times.

> 
> It would also be nice to avoid all the "CPU 1 MCA banks CMCI:0 CMCI:1 CMCI:3"
> messages.
> 
> -Tony
> 
> diff --git a/arch/x86/kernel/cpu/mcheck/mce_intel.c b/arch/x86/kernel/cpu/mcheck/mce_intel.c
> index 693bc7d..236f60e 100644
> --- a/arch/x86/kernel/cpu/mcheck/mce_intel.c
> +++ b/arch/x86/kernel/cpu/mcheck/mce_intel.c
> @@ -87,6 +87,8 @@ void mce_intel_hcpu_update(unsigned long cpu)
>  
>  unsigned long mce_intel_adjust_timer(unsigned long interval)
>  {
> +	static unsigned long jiffie_state;
> +
>  	if (interval < CMCI_POLL_INTERVAL)
>  		return interval;
>  
> @@ -108,6 +110,8 @@ unsigned long mce_intel_adjust_timer(unsigned long interval)
>  		 */
>  		if (!atomic_read(&cmci_storm_on_cpus)) {
>  			__this_cpu_write(cmci_storm_state, CMCI_STORM_NONE);
> +			if (printk_timed_ratelimit(&jiffie_state, CMCI_STORM_INTERVAL/HZ*1000))
> +				pr_notice("CMCI storm subsided, switching to interrupt mode\n");
>  			cmci_reenable();
>  			cmci_recheck();
>  		}
> @@ -126,6 +130,7 @@ static bool cmci_storm_detect(void)
>  	unsigned int cnt = __this_cpu_read(cmci_storm_cnt);
>  	unsigned long ts = __this_cpu_read(cmci_time_stamp);
>  	unsigned long now = jiffies;
> +	static unsigned long jiffie_state;
>  
>  	if (__this_cpu_read(cmci_storm_state) != CMCI_STORM_NONE)
>  		return true;
> @@ -145,6 +150,9 @@ static bool cmci_storm_detect(void)
>  	__this_cpu_write(cmci_storm_state, CMCI_STORM_ACTIVE);
>  	atomic_inc(&cmci_storm_on_cpus);
>  	mce_timer_kick(CMCI_POLL_INTERVAL);
> +
> +	if (printk_timed_ratelimit(&jiffie_state, CMCI_STORM_INTERVAL/HZ*1000))
> +		pr_notice("CMCI storm detected, switching to poll mode\n");
>  	return true;
>  }
>  

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

  reply	other threads:[~2012-08-06 21:42 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-19 17:59 [RESEND PATCH 0/5 V2] x86: mce: Bugfixes, cleanups and a new CMCI poll version Chen Gong
2012-07-19 17:59 ` [PATCH 1/5] x86: mce: Disable preemption when calling raise_local() Chen Gong
2012-07-19 17:59 ` [PATCH 2/5] x86: mce: Serialize mce injection Chen Gong
2012-07-19 17:59 ` [PATCH 3/5] x86: mce: Split timer init Chen Gong
2012-07-19 17:59 ` [PATCH 4/5] x86: mce: Remove the frozen cases in the hotplug code Chen Gong
2012-07-19 17:59 ` [PATCH 5/5] x86: mce: Add cmci poll mode Chen Gong
2012-08-01  0:56 ` [RESEND PATCH 0/5 V2] x86: mce: Bugfixes, cleanups and a new CMCI poll version Chen Gong
2012-08-01  9:15   ` Borislav Petkov
2012-08-03 22:29   ` Luck, Tony
2012-08-06 21:43     ` Chen Gong [this message]
2012-08-07 20:46       ` [PATCH 5/6] x86/mce: Provide an option to keep cmci_reenable() quiet Tony Luck
2012-08-07 22:15         ` [PATCH 6/6] x86/mce: Add CMCI poll mode Tony Luck
2012-08-09 17:59         ` [PATCH 5/6] x86/mce: Make cmci_discover() quiet Tony Luck

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=20120806214336.GA11726@gchen.bj.intel.com \
    --to=gong.chen@linux.intel.com \
    --cc=bp@amd64.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;
as well as URLs for NNTP newsgroup(s).