[PATCH][2.4] generic support for systems with more than 8 CPUs (2/2)

From: Pallipadi, Venkatesh (venkatesh.pallipadi@intel.com)
Date: Sun Dec 22 2002 - 01:59:10 EST


2/2 : switching to physical mode APIC setup in case of more than 8 CPU system

Thanks,
-Venkatesh

diff -urN linux-2.4.21-pre2.org/Documentation/Configure.help linux-2.4.21-pre2/Documentation/Configure.help
--- linux-2.4.21-pre2.org/Documentation/Configure.help 2002-12-17 20:05:15.000000000 -0800
+++ linux-2.4.21-pre2/Documentation/Configure.help 2002-12-17 20:11:23.000000000 -0800
@@ -262,6 +262,13 @@
 
   If you don't have this computer, you may safely say N.
 
+Other more than 8 logical CPU system support
+CONFIG_X86_MANY_CPU
+ This option is required to support systems with more than 8 logical CPUs.
+
+ If you don't have such a computer, you may safely say N.
+ You dont have to choose this for IBM Summit/x440 systems.
+
 IO-APIC support on uniprocessors
 CONFIG_X86_UP_IOAPIC
   An IO-APIC (I/O Advanced Programmable Interrupt Controller) is an
diff -urN linux-2.4.21-pre2.org/arch/i386/config.in linux-2.4.21-pre2/arch/i386/config.in
--- linux-2.4.21-pre2.org/arch/i386/config.in 2002-12-17 20:05:15.000000000 -0800
+++ linux-2.4.21-pre2/arch/i386/config.in 2002-12-17 20:11:23.000000000 -0800
@@ -229,6 +229,10 @@
          define_bool CONFIG_X86_CLUSTERED_APIC y
       fi
    fi
+ bool 'Other more than 8 logical CPU system support' CONFIG_X86_MANY_CPU
+ if [ "$CONFIG_X86_MANY_CPU" = "y" ]; then
+ define_bool CONFIG_X86_CLUSTERED_APIC y
+ fi
 fi
 
 if [ "$CONFIG_X86_NUMA" != "y" ]; then
diff -urN linux-2.4.21-pre2.org/arch/i386/kernel/mpparse.c linux-2.4.21-pre2/arch/i386/kernel/mpparse.c
--- linux-2.4.21-pre2.org/arch/i386/kernel/mpparse.c 2002-12-17 20:12:21.000000000 -0800
+++ linux-2.4.21-pre2/arch/i386/kernel/mpparse.c 2002-12-17 20:11:23.000000000 -0800
@@ -590,15 +590,6 @@
         }
 
 
- printk("Enabling APIC mode: ");
- if(clustered_apic_mode == CLUSTERED_APIC_NUMAQ)
- printk("Clustered Logical. ");
- else if(clustered_apic_mode == CLUSTERED_APIC_XAPIC)
- printk("Physical. ");
- else
- printk("Flat. ");
- printk("Using %d I/O APICs\n",nr_ioapics);
-
         if (!num_processors)
                 printk(KERN_ERR "SMP mptable: no processors registered!\n");
         return num_processors;
@@ -834,6 +825,33 @@
 
         printk("Processors: %d\n", num_processors);
         printk("xAPIC support %s present\n", (xapic_support?"is":"is not"));
+
+#ifdef CONFIG_X86_CLUSTERED_APIC
+ /*
+ * Switch to Physical destination mode in case of generic
+ * more than 8 CPU system, which has xAPIC support
+ */
+#define FLAT_APIC_CPU_MAX 8
+ if ((clustered_apic_mode == CLUSTERED_APIC_NONE) &&
+ (xapic_support) &&
+ (num_processors > FLAT_APIC_CPU_MAX)) {
+ clustered_apic_mode = CLUSTERED_APIC_XAPIC;
+ apic_broadcast_id = APIC_BROADCAST_ID_XAPIC;
+ int_dest_addr_mode = APIC_DEST_PHYSICAL;
+ int_delivery_mode = dest_Fixed;
+ esr_disable = 1;
+ }
+#endif
+
+ printk("Enabling APIC mode: ");
+ if (clustered_apic_mode == CLUSTERED_APIC_NUMAQ)
+ printk("Clustered Logical. ");
+ else if (clustered_apic_mode == CLUSTERED_APIC_XAPIC)
+ printk("Physical. ");
+ else
+ printk("Flat. ");
+ printk("Using %d I/O APICs\n",nr_ioapics);
+
         /*
          * Only use the first configuration found.
          */



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



This archive was generated by hypermail 2b29 : Mon Dec 23 2002 - 22:00:30 EST