All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 0/2] MCA support for Centaur CPUs
@ 2018-04-25 10:33 David Wang
  2018-04-25 10:33   ` [v3,1/2] " davidwang
  2018-04-25 10:33   ` [v3,2/2] " davidwang
  0 siblings, 2 replies; 11+ messages in thread
From: David Wang @ 2018-04-25 10:33 UTC (permalink / raw)
  To: bp, tony.luck, tglx, mingo, hpa, gregkh, x86, linux-kernel, linux-edac
  Cc: brucechang, cooperyan, qiyuanwang, benjaminpan, lukelin, timguo,
	David Wang

This patch set is to provide MCA support for new Centaur CPU.

The first patch is used to tell the kernel that newer Centaur
CPU support MCE broadcasting.

The second patch is used to tell the kernel that newer Centaur
CPU support CMCI.

Changes from v2 to v3:
* move mca_cfg.monarch_timeout init from __mcheck_cpu_apply_quirks to
mce_centaur_feature_init according to request from Boris.

Changes from v1 to v2:
* Capatilize 'Centaur' in the comments

David Wang (2):
  x86/mce: new Centaur CPU support MCE broadcasting
  x86/mce: add CMCI support for Centaur CPUs

 arch/x86/kernel/cpu/mcheck/mce.c | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)

-- 
1.9.1

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [PATCH v3 1/2] x86/mce: new Centaur CPU support MCE broadcasting
@ 2018-04-25 10:33   ` davidwang
  0 siblings, 0 replies; 11+ messages in thread
From: David Wang @ 2018-04-25 10:33 UTC (permalink / raw)
  To: bp, tony.luck, tglx, mingo, hpa, gregkh, x86, linux-kernel, linux-edac
  Cc: brucechang, cooperyan, qiyuanwang, benjaminpan, lukelin, timguo,
	David Wang

Newer Centaur multi-core CPU also support MCE broadcasting to all cores. But
no Centaur special code tell this truth to kernel.  

Signed-off-by: David Wang <davidwang@zhaoxin.com>
---
 arch/x86/kernel/cpu/mcheck/mce.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 42cf288..38ccab8 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1727,6 +1727,22 @@ static void __mcheck_cpu_init_early(struct cpuinfo_x86 *c)
 	}
 }
 
+void mce_centaur_feature_init(struct cpuinfo_x86 *c)
+{
+	struct mca_config *cfg = &mca_cfg;
+
+	 /*
+	  * All newer Centaur CPUs support MCE broadcasting. Enable
+	  * synchronization with a one second timeout.
+	  */
+	if (cfg->monarch_timeout < 0) {
+		if ((c->x86 == 6 && c->x86_model == 0xf &&
+			c->x86_stepping >= 0xe) || c->x86 > 6)
+			cfg->monarch_timeout = USEC_PER_SEC;
+	}
+}
+
+
 static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 {
 	switch (c->x86_vendor) {
@@ -1739,6 +1755,9 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 		mce_amd_feature_init(c);
 		break;
 		}
+	case X86_VENDOR_CENTAUR:
+		mce_centaur_feature_init(c);
+		break;
 
 	default:
 		break;
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [v3,1/2] x86/mce: new Centaur CPU support MCE broadcasting
@ 2018-04-25 10:33   ` davidwang
  0 siblings, 0 replies; 11+ messages in thread
From: davidwang @ 2018-04-25 10:33 UTC (permalink / raw)
  To: bp, tony.luck, tglx, mingo, hpa, gregkh, x86, linux-kernel, linux-edac
  Cc: brucechang, cooperyan, qiyuanwang, benjaminpan, lukelin, timguo,
	David Wang

Newer Centaur multi-core CPU also support MCE broadcasting to all cores. But
no Centaur special code tell this truth to kernel.  

Signed-off-by: David Wang <davidwang@zhaoxin.com>
---
 arch/x86/kernel/cpu/mcheck/mce.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 42cf288..38ccab8 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1727,6 +1727,22 @@ static void __mcheck_cpu_init_early(struct cpuinfo_x86 *c)
 	}
 }
 
+void mce_centaur_feature_init(struct cpuinfo_x86 *c)
+{
+	struct mca_config *cfg = &mca_cfg;
+
+	 /*
+	  * All newer Centaur CPUs support MCE broadcasting. Enable
+	  * synchronization with a one second timeout.
+	  */
+	if (cfg->monarch_timeout < 0) {
+		if ((c->x86 == 6 && c->x86_model == 0xf &&
+			c->x86_stepping >= 0xe) || c->x86 > 6)
+			cfg->monarch_timeout = USEC_PER_SEC;
+	}
+}
+
+
 static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 {
 	switch (c->x86_vendor) {
@@ -1739,6 +1755,9 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 		mce_amd_feature_init(c);
 		break;
 		}
+	case X86_VENDOR_CENTAUR:
+		mce_centaur_feature_init(c);
+		break;
 
 	default:
 		break;

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [PATCH v3 2/2] x86/mce: add CMCI support for Centaur CPUs
@ 2018-04-25 10:33   ` davidwang
  0 siblings, 0 replies; 11+ messages in thread
From: David Wang @ 2018-04-25 10:33 UTC (permalink / raw)
  To: bp, tony.luck, tglx, mingo, hpa, gregkh, x86, linux-kernel, linux-edac
  Cc: brucechang, cooperyan, qiyuanwang, benjaminpan, lukelin, timguo,
	David Wang

Newer Centaur support CMCI mechnism, which is compatible with INTEL CMCI.

Signed-off-by: David Wang <davidwang@zhaoxin.com>
---
 arch/x86/kernel/cpu/mcheck/mce.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 38ccab8..f9a7295 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1757,6 +1757,8 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 		}
 	case X86_VENDOR_CENTAUR:
 		mce_centaur_feature_init(c);
+		mce_intel_feature_init(c);
+		mce_adjust_timer = cmci_intel_adjust_timer;
 		break;
 
 	default:
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [v3,2/2] x86/mce: add CMCI support for Centaur CPUs
@ 2018-04-25 10:33   ` davidwang
  0 siblings, 0 replies; 11+ messages in thread
From: davidwang @ 2018-04-25 10:33 UTC (permalink / raw)
  To: bp, tony.luck, tglx, mingo, hpa, gregkh, x86, linux-kernel, linux-edac
  Cc: brucechang, cooperyan, qiyuanwang, benjaminpan, lukelin, timguo,
	David Wang

Newer Centaur support CMCI mechnism, which is compatible with INTEL CMCI.

Signed-off-by: David Wang <davidwang@zhaoxin.com>
---
 arch/x86/kernel/cpu/mcheck/mce.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 38ccab8..f9a7295 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1757,6 +1757,8 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 		}
 	case X86_VENDOR_CENTAUR:
 		mce_centaur_feature_init(c);
+		mce_intel_feature_init(c);
+		mce_adjust_timer = cmci_intel_adjust_timer;
 		break;
 
 	default:

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 1/2] x86/mce: new Centaur CPU support MCE broadcasting
@ 2018-04-30  9:41     ` Borislav Petkov
  0 siblings, 0 replies; 11+ messages in thread
From: Borislav Petkov @ 2018-04-30  9:41 UTC (permalink / raw)
  To: David Wang
  Cc: tony.luck, tglx, mingo, hpa, gregkh, x86, linux-kernel,
	linux-edac, brucechang, cooperyan, qiyuanwang, benjaminpan,
	lukelin, timguo

On Wed, Apr 25, 2018 at 06:33:39PM +0800, David Wang wrote:
> Newer Centaur multi-core CPU also support MCE broadcasting to all cores. But
> no Centaur special code tell this truth to kernel.  
> 
> Signed-off-by: David Wang <davidwang@zhaoxin.com>
> ---
>  arch/x86/kernel/cpu/mcheck/mce.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)

I applied this with some minor improvements:

---
From: David Wang <davidwang@zhaoxin.com>
Date: Wed, 25 Apr 2018 18:33:39 +0800
Subject: [PATCH] x86/MCA: Enable MCE broadcasting on new Centaur CPUs

Newer Centaur multi-core CPUs also support MCE broadcasting to all
cores. Add a Centaur-specific init function setting that up.

 [ bp:
   - make mce_centaur_feature_init() static
   - flip check to do the f/m/s first for better readability
   - touch up text
  ]

Signed-off-by: David Wang <davidwang@zhaoxin.com>
Cc: Greg KH <greg@kroah.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: benjaminpan@viatech.com
Cc: brucechang@via-alliance.com
Cc: cooperyan@zhaoxin.com
Cc: lukelin@viacpu.com
Cc: qiyuanwang@zhaoxin.com
Cc: timguo@zhaoxin.com
Cc: x86-ml <x86@kernel.org>
Cc: linux-edac <linux-edac@vger.kernel.org>
Link: http://lkml.kernel.org/r/1524652420-17330-2-git-send-email-davidwang@zhaoxin.com
Signed-off-by: Borislav Petkov <bp@suse.de>
---
 arch/x86/kernel/cpu/mcheck/mce.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 42cf2880d0ed..cd76380af79f 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1727,6 +1727,21 @@ static void __mcheck_cpu_init_early(struct cpuinfo_x86 *c)
 	}
 }
 
+static void mce_centaur_feature_init(struct cpuinfo_x86 *c)
+{
+	struct mca_config *cfg = &mca_cfg;
+
+	 /*
+	  * All newer Centaur CPUs support MCE broadcasting. Enable
+	  * synchronization with a one second timeout.
+	  */
+	if ((c->x86 == 6 && c->x86_model == 0xf && c->x86_stepping >= 0xe) ||
+	     c->x86 > 6) {
+		if (cfg->monarch_timeout < 0)
+			cfg->monarch_timeout = USEC_PER_SEC;
+	}
+}
+
 static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 {
 	switch (c->x86_vendor) {
@@ -1739,6 +1754,9 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 		mce_amd_feature_init(c);
 		break;
 		}
+	case X86_VENDOR_CENTAUR:
+		mce_centaur_feature_init(c);
+		break;
 
 	default:
 		break;
-- 
2.13.0

-- 
Regards/Gruss,
    Boris.

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

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [v3,1/2] x86/mce: new Centaur CPU support MCE broadcasting
@ 2018-04-30  9:41     ` Borislav Petkov
  0 siblings, 0 replies; 11+ messages in thread
From: Borislav Petkov @ 2018-04-30  9:41 UTC (permalink / raw)
  To: David Wang
  Cc: tony.luck, tglx, mingo, hpa, gregkh, x86, linux-kernel,
	linux-edac, brucechang, cooperyan, qiyuanwang, benjaminpan,
	lukelin, timguo

On Wed, Apr 25, 2018 at 06:33:39PM +0800, David Wang wrote:
> Newer Centaur multi-core CPU also support MCE broadcasting to all cores. But
> no Centaur special code tell this truth to kernel.  
> 
> Signed-off-by: David Wang <davidwang@zhaoxin.com>
> ---
>  arch/x86/kernel/cpu/mcheck/mce.c | 19 +++++++++++++++++++
>  1 file changed, 19 insertions(+)

I applied this with some minor improvements:
---
From: David Wang <davidwang@zhaoxin.com>
Date: Wed, 25 Apr 2018 18:33:39 +0800
Subject: [PATCH] x86/MCA: Enable MCE broadcasting on new Centaur CPUs

Newer Centaur multi-core CPUs also support MCE broadcasting to all
cores. Add a Centaur-specific init function setting that up.

 [ bp:
   - make mce_centaur_feature_init() static
   - flip check to do the f/m/s first for better readability
   - touch up text
  ]

Signed-off-by: David Wang <davidwang@zhaoxin.com>
Cc: Greg KH <greg@kroah.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: benjaminpan@viatech.com
Cc: brucechang@via-alliance.com
Cc: cooperyan@zhaoxin.com
Cc: lukelin@viacpu.com
Cc: qiyuanwang@zhaoxin.com
Cc: timguo@zhaoxin.com
Cc: x86-ml <x86@kernel.org>
Cc: linux-edac <linux-edac@vger.kernel.org>
Link: http://lkml.kernel.org/r/1524652420-17330-2-git-send-email-davidwang@zhaoxin.com
Signed-off-by: Borislav Petkov <bp@suse.de>
---
 arch/x86/kernel/cpu/mcheck/mce.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 42cf2880d0ed..cd76380af79f 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1727,6 +1727,21 @@ static void __mcheck_cpu_init_early(struct cpuinfo_x86 *c)
 	}
 }
 
+static void mce_centaur_feature_init(struct cpuinfo_x86 *c)
+{
+	struct mca_config *cfg = &mca_cfg;
+
+	 /*
+	  * All newer Centaur CPUs support MCE broadcasting. Enable
+	  * synchronization with a one second timeout.
+	  */
+	if ((c->x86 == 6 && c->x86_model == 0xf && c->x86_stepping >= 0xe) ||
+	     c->x86 > 6) {
+		if (cfg->monarch_timeout < 0)
+			cfg->monarch_timeout = USEC_PER_SEC;
+	}
+}
+
 static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 {
 	switch (c->x86_vendor) {
@@ -1739,6 +1754,9 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 		mce_amd_feature_init(c);
 		break;
 		}
+	case X86_VENDOR_CENTAUR:
+		mce_centaur_feature_init(c);
+		break;
 
 	default:
 		break;

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* Re: [PATCH v3 2/2] x86/mce: add CMCI support for Centaur CPUs
@ 2018-04-30  9:48     ` Borislav Petkov
  0 siblings, 0 replies; 11+ messages in thread
From: Borislav Petkov @ 2018-04-30  9:48 UTC (permalink / raw)
  To: David Wang
  Cc: tony.luck, tglx, mingo, hpa, gregkh, x86, linux-kernel,
	linux-edac, brucechang, cooperyan, qiyuanwang, benjaminpan,
	lukelin, timguo

On Wed, Apr 25, 2018 at 06:33:40PM +0800, David Wang wrote:
> Newer Centaur support CMCI mechnism, which is compatible with INTEL CMCI.
> 
> Signed-off-by: David Wang <davidwang@zhaoxin.com>
> ---
>  arch/x86/kernel/cpu/mcheck/mce.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
> index 38ccab8..f9a7295 100644
> --- a/arch/x86/kernel/cpu/mcheck/mce.c
> +++ b/arch/x86/kernel/cpu/mcheck/mce.c
> @@ -1757,6 +1757,8 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
>  		}
>  	case X86_VENDOR_CENTAUR:
>  		mce_centaur_feature_init(c);
> +		mce_intel_feature_init(c);
> +		mce_adjust_timer = cmci_intel_adjust_timer;

This won't work in configs with CONFIG_X86_MCE_INTEL disabled.

You need to define CONFIG_X86_MCE_CENTAUR or so which depends on
CONFIG_CPU_SUP_CENTAUR and CONFIG_X86_MCE_INTEL and which then makes
sure the intel CMCI et al stuff is enabled.

-- 
Regards/Gruss,
    Boris.

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

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [v3,2/2] x86/mce: add CMCI support for Centaur CPUs
@ 2018-04-30  9:48     ` Borislav Petkov
  0 siblings, 0 replies; 11+ messages in thread
From: Borislav Petkov @ 2018-04-30  9:48 UTC (permalink / raw)
  To: David Wang
  Cc: tony.luck, tglx, mingo, hpa, gregkh, x86, linux-kernel,
	linux-edac, brucechang, cooperyan, qiyuanwang, benjaminpan,
	lukelin, timguo

On Wed, Apr 25, 2018 at 06:33:40PM +0800, David Wang wrote:
> Newer Centaur support CMCI mechnism, which is compatible with INTEL CMCI.
> 
> Signed-off-by: David Wang <davidwang@zhaoxin.com>
> ---
>  arch/x86/kernel/cpu/mcheck/mce.c | 2 ++
>  1 file changed, 2 insertions(+)
> 
> diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
> index 38ccab8..f9a7295 100644
> --- a/arch/x86/kernel/cpu/mcheck/mce.c
> +++ b/arch/x86/kernel/cpu/mcheck/mce.c
> @@ -1757,6 +1757,8 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
>  		}
>  	case X86_VENDOR_CENTAUR:
>  		mce_centaur_feature_init(c);
> +		mce_intel_feature_init(c);
> +		mce_adjust_timer = cmci_intel_adjust_timer;

This won't work in configs with CONFIG_X86_MCE_INTEL disabled.

You need to define CONFIG_X86_MCE_CENTAUR or so which depends on
CONFIG_CPU_SUP_CENTAUR and CONFIG_X86_MCE_INTEL and which then makes
sure the intel CMCI et al stuff is enabled.

^ permalink raw reply	[flat|nested] 11+ messages in thread

* [tip:ras/core] x86/MCE: Enable MCE broadcasting on new Centaur CPUs
@ 2018-05-06 10:51     ` tip-bot for Borislav Petkov
  0 siblings, 0 replies; 11+ messages in thread
From: tip-bot for David Wang @ 2018-05-06 10:51 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: bp, davidwang, greg, linux-edac, hpa, mingo, tglx, tony.luck,
	linux-kernel

Commit-ID:  13e8582245267b872dc6eb4ab695fffc797d99f5
Gitweb:     https://git.kernel.org/tip/13e8582245267b872dc6eb4ab695fffc797d99f5
Author:     David Wang <davidwang@zhaoxin.com>
AuthorDate: Wed, 25 Apr 2018 18:33:39 +0800
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Sun, 6 May 2018 12:46:25 +0200

x86/MCE: Enable MCE broadcasting on new Centaur CPUs

Newer Centaur multi-core CPUs also support MCE broadcasting to all
cores. Add a Centaur-specific init function setting that up.

 [ bp:
   - make mce_centaur_feature_init() static
   - flip check to do the f/m/s first for better readability
   - touch up text
  ]

Signed-off-by: David Wang <davidwang@zhaoxin.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: lukelin@viacpu.com
Cc: qiyuanwang@zhaoxin.com
Cc: Greg KH <greg@kroah.com>
Cc: brucechang@via-alliance.com
Cc: timguo@zhaoxin.com
Cc: cooperyan@zhaoxin.com
Cc: Tony Luck <tony.luck@intel.com>
Cc: benjaminpan@viatech.com
Cc: linux-edac <linux-edac@vger.kernel.org>
Link: http://lkml.kernel.org/r/1524652420-17330-2-git-send-email-davidwang@zhaoxin.com

---
 arch/x86/kernel/cpu/mcheck/mce.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 42cf2880d0ed..cd76380af79f 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1727,6 +1727,21 @@ static void __mcheck_cpu_init_early(struct cpuinfo_x86 *c)
 	}
 }
 
+static void mce_centaur_feature_init(struct cpuinfo_x86 *c)
+{
+	struct mca_config *cfg = &mca_cfg;
+
+	 /*
+	  * All newer Centaur CPUs support MCE broadcasting. Enable
+	  * synchronization with a one second timeout.
+	  */
+	if ((c->x86 == 6 && c->x86_model == 0xf && c->x86_stepping >= 0xe) ||
+	     c->x86 > 6) {
+		if (cfg->monarch_timeout < 0)
+			cfg->monarch_timeout = USEC_PER_SEC;
+	}
+}
+
 static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 {
 	switch (c->x86_vendor) {
@@ -1739,6 +1754,9 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 		mce_amd_feature_init(c);
 		break;
 		}
+	case X86_VENDOR_CENTAUR:
+		mce_centaur_feature_init(c);
+		break;
 
 	default:
 		break;

^ permalink raw reply related	[flat|nested] 11+ messages in thread

* [tip:ras/core] x86/MCE: Enable MCE broadcasting on new Centaur CPUs
@ 2018-05-06 10:51     ` tip-bot for Borislav Petkov
  0 siblings, 0 replies; 11+ messages in thread
From: tip-bot for Borislav Petkov @ 2018-05-06 10:51 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: bp, davidwang, greg, linux-edac, hpa, mingo, tglx, tony.luck,
	linux-kernel

Commit-ID:  13e8582245267b872dc6eb4ab695fffc797d99f5
Gitweb:     https://git.kernel.org/tip/13e8582245267b872dc6eb4ab695fffc797d99f5
Author:     David Wang <davidwang@zhaoxin.com>
AuthorDate: Wed, 25 Apr 2018 18:33:39 +0800
Committer:  Thomas Gleixner <tglx@linutronix.de>
CommitDate: Sun, 6 May 2018 12:46:25 +0200

x86/MCE: Enable MCE broadcasting on new Centaur CPUs

Newer Centaur multi-core CPUs also support MCE broadcasting to all
cores. Add a Centaur-specific init function setting that up.

 [ bp:
   - make mce_centaur_feature_init() static
   - flip check to do the f/m/s first for better readability
   - touch up text
  ]

Signed-off-by: David Wang <davidwang@zhaoxin.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: lukelin@viacpu.com
Cc: qiyuanwang@zhaoxin.com
Cc: Greg KH <greg@kroah.com>
Cc: brucechang@via-alliance.com
Cc: timguo@zhaoxin.com
Cc: cooperyan@zhaoxin.com
Cc: Tony Luck <tony.luck@intel.com>
Cc: benjaminpan@viatech.com
Cc: linux-edac <linux-edac@vger.kernel.org>
Link: http://lkml.kernel.org/r/1524652420-17330-2-git-send-email-davidwang@zhaoxin.com
---
 arch/x86/kernel/cpu/mcheck/mce.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

--
To unsubscribe from this list: send the line "unsubscribe linux-edac" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
index 42cf2880d0ed..cd76380af79f 100644
--- a/arch/x86/kernel/cpu/mcheck/mce.c
+++ b/arch/x86/kernel/cpu/mcheck/mce.c
@@ -1727,6 +1727,21 @@ static void __mcheck_cpu_init_early(struct cpuinfo_x86 *c)
 	}
 }
 
+static void mce_centaur_feature_init(struct cpuinfo_x86 *c)
+{
+	struct mca_config *cfg = &mca_cfg;
+
+	 /*
+	  * All newer Centaur CPUs support MCE broadcasting. Enable
+	  * synchronization with a one second timeout.
+	  */
+	if ((c->x86 == 6 && c->x86_model == 0xf && c->x86_stepping >= 0xe) ||
+	     c->x86 > 6) {
+		if (cfg->monarch_timeout < 0)
+			cfg->monarch_timeout = USEC_PER_SEC;
+	}
+}
+
 static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 {
 	switch (c->x86_vendor) {
@@ -1739,6 +1754,9 @@ static void __mcheck_cpu_init_vendor(struct cpuinfo_x86 *c)
 		mce_amd_feature_init(c);
 		break;
 		}
+	case X86_VENDOR_CENTAUR:
+		mce_centaur_feature_init(c);
+		break;
 
 	default:
 		break;

^ permalink raw reply related	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2018-05-06 10:52 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-04-25 10:33 [PATCH v3 0/2] MCA support for Centaur CPUs David Wang
2018-04-25 10:33 ` [PATCH v3 1/2] x86/mce: new Centaur CPU support MCE broadcasting David Wang
2018-04-25 10:33   ` [v3,1/2] " davidwang
2018-04-30  9:41   ` [PATCH v3 1/2] " Borislav Petkov
2018-04-30  9:41     ` [v3,1/2] " Borislav Petkov
2018-05-06 10:51   ` [tip:ras/core] x86/MCE: Enable MCE broadcasting on new Centaur CPUs tip-bot for David Wang
2018-05-06 10:51     ` tip-bot for Borislav Petkov
2018-04-25 10:33 ` [PATCH v3 2/2] x86/mce: add CMCI support for " David Wang
2018-04-25 10:33   ` [v3,2/2] " davidwang
2018-04-30  9:48   ` [PATCH v3 2/2] " Borislav Petkov
2018-04-30  9:48     ` [v3,2/2] " Borislav Petkov

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.