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] Disable SMP on the MacBook by default

To: xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-devel] [PATCH] Disable SMP on the MacBook by default
From: Marco Gerards <mgerards@xxxxxxxxx>
Date: Wed, 13 Sep 2006 22:45:39 +0200
Delivery-date: Wed, 13 Sep 2006 13:38:46 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Mail-copies-to: mgerards@xxxxxxxxx
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/21.4 (gnu/linux)
Hi,

As I mentioned before, SMP is non functional on the MacBook.  It even
makes the machine crash.  I am using a patch to disable SMP support in
the case a MacBook was detected.  I have included this patch at the
end of this email.

Because this will be useful for the LiveCD, I hope you will commit
this patch.  Please let me know if there are issues that I need to
take care of before it can be committed.

Thanks,
Marco


diff -r 3e31c5e160cf xen/arch/x86/dmi_scan.c
--- a/xen/arch/x86/dmi_scan.c   Wed Sep 13 14:59:14 2006
+++ b/xen/arch/x86/dmi_scan.c   Wed Sep 13 22:34:01 2006
@@ -8,6 +8,7 @@
 #include <xen/acpi.h>
 #include <asm/io.h>
 #include <asm/system.h>
+#include <xen/smp.h>
 #include <xen/dmi.h>
 
 #define bt_ioremap(b,l)  ((u8 *)__acpi_map_table(b,l))
@@ -181,6 +182,15 @@
        return 0;
 }
 
+/*
+ * Disable SMP.  */
+static int __init dmi_disable_smp(struct dmi_blacklist *d)
+{
+       printk(KERN_NOTICE "%s detected: SMP support disabled\n", d->ident);
+       opt_nosmp = 1;
+       return 0;
+}
+
 
 #ifdef CONFIG_ACPI_SLEEP
 static __init int reset_videomode_after_s3(struct dmi_blacklist *d)
@@ -262,6 +272,17 @@
                        MATCH(DMI_PRODUCT_NAME, "S4030CDT/4.3"),
                        NO_MATCH, NO_MATCH, NO_MATCH
                        } },
+
+       /*
+        * SMP support is broken for the MacBook.  Disable SMP to
+        * prevent further problems.
+        */
+        {
+          .callback = dmi_disable_smp,
+          .ident = "Apple MacBook",
+          .matches = {DMI_MATCH(DMI_PRODUCT_NAME, "MacBook1,1"),},
+        },
+
 #ifdef CONFIG_ACPI_SLEEP
        { reset_videomode_after_s3, "Toshiba Satellite 4030cdt", { /* Reset 
video mode after returning from ACPI S3 sleep */
                        MATCH(DMI_PRODUCT_NAME, "S4030CDT/4.3"),
diff -r 3e31c5e160cf xen/arch/x86/setup.c
--- a/xen/arch/x86/setup.c      Wed Sep 13 14:59:14 2006
+++ b/xen/arch/x86/setup.c      Wed Sep 13 22:34:01 2006
@@ -40,7 +40,7 @@
 #endif
 
 /* opt_nosmp: If true, secondary processors are ignored. */
-static int opt_nosmp = 0;
+int opt_nosmp = 0;
 boolean_param("nosmp", opt_nosmp);
 
 /* maxcpus: maximum number of CPUs to activate. */
diff -r 3e31c5e160cf xen/include/xen/smp.h
--- a/xen/include/xen/smp.h     Wed Sep 13 14:59:14 2006
+++ b/xen/include/xen/smp.h     Wed Sep 13 22:34:01 2006
@@ -111,4 +111,6 @@
 
 #define smp_processor_id() raw_smp_processor_id()
 
+extern int opt_nosmp ;
+
 #endif


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