> 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.
Am I totally confused, or wasn't this solved by some update to grub
legacy to change A20 gate stuff?
Thanks,
Ian
> 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
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|