WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

[Xen-devel] [PATCH] i386: eliminate unsupported CPUs' MCA handling code

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] [PATCH] i386: eliminate unsupported CPUs' MCA handling code
From: "Jan Beulich" <JBeulich@xxxxxxxxxx>
Date: Wed, 15 Jul 2009 13:54:39 +0100
Delivery-date: Wed, 15 Jul 2009 05:55:08 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Neither Intel P5 nor Winchip are supported by Xen (due to -march=i686
being passed to the compiler), so there is no point in having code for
handling their (rudimentary) MCA capabilities.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

--- 2009-07-10.orig/xen/arch/x86/cpu/mcheck/Makefile    2009-07-15 
12:36:46.000000000 +0200
+++ 2009-07-10/xen/arch/x86/cpu/mcheck/Makefile 2009-07-15 12:33:44.000000000 
+0200
@@ -6,5 +6,3 @@ obj-y += mctelem.o
 obj-y += mce.o
 obj-y += mce_intel.o
 obj-y += non-fatal.o
-obj-$(x86_32) += p5.o
-obj-$(x86_32) += winchip.o
--- 2009-07-10.orig/xen/arch/x86/cpu/mcheck/mce.c       2009-07-15 
12:27:41.000000000 +0200
+++ 2009-07-10/xen/arch/x86/cpu/mcheck/mce.c    2009-07-15 12:34:47.000000000 
+0200
@@ -617,12 +617,6 @@ void mcheck_init(struct cpuinfo_x86 *c)
 
        case X86_VENDOR_INTEL:
                switch (c->x86) {
-               case 5:
-#ifndef CONFIG_X86_64
-                       inited = intel_p5_mcheck_init(c);
-#endif
-                       break;
-
                case 6:
                case 15:
                        inited = intel_mcheck_init(c);
@@ -630,14 +624,6 @@ void mcheck_init(struct cpuinfo_x86 *c)
                }
                break;
 
-#ifndef CONFIG_X86_64
-       case X86_VENDOR_CENTAUR:
-               if (c->x86==5) {
-                       inited = winchip_mcheck_init(c);
-               }
-               break;
-#endif
-
        default:
                break;
        }
--- 2009-07-10.orig/xen/arch/x86/cpu/mcheck/mce.h       2009-07-15 
11:52:08.000000000 +0200
+++ 2009-07-10/xen/arch/x86/cpu/mcheck/mce.h    2009-07-15 12:35:06.000000000 
+0200
@@ -17,8 +17,6 @@ int amd_k7_mcheck_init(struct cpuinfo_x8
 int amd_k8_mcheck_init(struct cpuinfo_x86 *c);
 int amd_f10_mcheck_init(struct cpuinfo_x86 *c);
 
-int intel_p5_mcheck_init(struct cpuinfo_x86 *c);
-int winchip_mcheck_init(struct cpuinfo_x86 *c);
 int intel_mcheck_init(struct cpuinfo_x86 *c);
 
 void intel_mcheck_timer(struct cpuinfo_x86 *c);
--- 2009-07-10.orig/xen/arch/x86/cpu/mcheck/p5.c        2009-07-15 
12:36:46.000000000 +0200
+++ /dev/null   1970-01-01 00:00:00.000000000 +0000
@@ -1,50 +0,0 @@
-/*
- * P5 specific Machine Check Exception Reporting
- * (C) Copyright 2002 Alan Cox <alan@xxxxxxxxxx>
- */
-
-#include <xen/init.h>
-#include <xen/types.h>
-#include <xen/kernel.h>
-#include <xen/smp.h>
-
-#include <asm/processor.h> 
-#include <asm/system.h>
-#include <asm/msr.h>
-
-#include "mce.h"
-#include "x86_mca.h"
-
-/* Machine check handler for Pentium class Intel */
-static void pentium_machine_check(struct cpu_user_regs * regs, long error_code)
-{
-       u32 loaddr, hi, lotype;
-       rdmsr(MSR_IA32_P5_MC_ADDR, loaddr, hi);
-       rdmsr(MSR_IA32_P5_MC_TYPE, lotype, hi);
-       printk(KERN_EMERG "CPU#%d: Machine Check Exception:  0x%8X (type 
0x%8X).\n", smp_processor_id(), loaddr, lotype);
-       if(lotype&(1<<5))
-               printk(KERN_EMERG "CPU#%d: Possible thermal failure (CPU on 
fire ?).\n", smp_processor_id());
-       add_taint(TAINT_MACHINE_CHECK);
-}
-
-/* Set up machine check reporting for processors with Intel style MCE */
-int intel_p5_mcheck_init(struct cpuinfo_x86 *c)
-{
-       u32 l, h;
-       
-       /* Default P5 to off as its often misconnected */
-       if(mce_disabled != -1)
-               return 0;
-       x86_mce_vector_register(pentium_machine_check);
-
-       /* Read registers before enabling */
-       rdmsr(MSR_IA32_P5_MC_ADDR, l, h);
-       rdmsr(MSR_IA32_P5_MC_TYPE, l, h);
-       printk(KERN_INFO "Intel old style machine check architecture 
supported.\n");
-
-       /* Enable MCE */
-       set_in_cr4(X86_CR4_MCE);
-       printk(KERN_INFO "Intel old style machine check reporting enabled on 
CPU#%d.\n", smp_processor_id());
-
-       return 1;
-}
--- 2009-07-10.orig/xen/arch/x86/cpu/mcheck/winchip.c   2009-07-15 
12:36:46.000000000 +0200
+++ /dev/null   1970-01-01 00:00:00.000000000 +0000
@@ -1,39 +0,0 @@
-/*
- * IDT Winchip specific Machine Check Exception Reporting
- * (C) Copyright 2002 Alan Cox <alan@xxxxxxxxxx>
- */
-
-#include <xen/config.h>
-#include <xen/init.h>
-#include <xen/lib.h>
-#include <xen/types.h>
-#include <xen/kernel.h>
-
-#include <asm/processor.h> 
-#include <asm/system.h>
-#include <asm/msr.h>
-
-#include "mce.h"
-
-/* Machine check handler for WinChip C6 */
-static void winchip_machine_check(struct cpu_user_regs * regs, long error_code)
-{
-       printk(KERN_EMERG "CPU0: Machine Check Exception.\n");
-       add_taint(TAINT_MACHINE_CHECK);
-}
-
-/* Set up machine check reporting on the Winchip C6 series */
-int winchip_mcheck_init(struct cpuinfo_x86 *c)
-{
-       u32 lo, hi;
-
-       wmb();
-       x86_mce_vector_register(winchip_machine_check);
-       rdmsr(MSR_IDT_FCR1, lo, hi);
-       lo|= (1<<2);    /* Enable EIERRINT (int 18 MCE) */
-       lo&= ~(1<<4);   /* Enable MCE */
-       wrmsr(MSR_IDT_FCR1, lo, hi);
-       set_in_cr4(X86_CR4_MCE);
-       printk(KERN_INFO "Winchip machine check reporting enabled on CPU#0.\n");
-       return (1);
-}



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-devel] [PATCH] i386: eliminate unsupported CPUs' MCA handling code, Jan Beulich <=