Re: [RFC][PATCH] fix target_cpus() for summit subarch

From: john stultz
Date: Mon Aug 30 2004 - 20:07:56 EST


On Mon, 2004-08-30 at 14:24, James Cleverdon wrote:
> I'm fine with changing the delivery mode to dest_LowestPrio. However,
> someone changed the default destination mask that target_cpus() returns
> from XAPIC_DEST_CPUS_MASK (0F) to APIC_ALL_CPUS (FF). The latter value
> is a bad idea. I'm unaware of anyone's hardware that will correctly
> arbitrate dest_LowestPrio among all CPUs of all clusters. (Please
> correct me if I'm wrong.) By chance, FF mostly works on IBM Summit
> (EXA) chips, but we can't rely on that in the future.

Ok, here is the corrected patch. Ran it through LTP for awhile and
tested a few hotplug USB devices.

If there are no other comments, I'll submit this to Andrew later this
week.

thanks


linux-2.6.9-rc1_summit-target-cpus-fix_A1
-----------------------------------------
diff -Nru a/include/asm-i386/mach-summit/mach_apic.h b/include/asm-i386/mach-summit/mach_apic.h
--- a/include/asm-i386/mach-summit/mach_apic.h 2004-08-30 17:33:02 -07:00
+++ b/include/asm-i386/mach-summit/mach_apic.h 2004-08-30 17:33:02 -07:00
@@ -19,11 +19,15 @@

static inline cpumask_t target_cpus(void)
{
- return CPU_MASK_ALL;
+ /* CPU_MASK_ALL (0xff) has undefined behaviour with
+ * logical clustered apic interrupt routing.
+ * Just start on cpu 0. IRQ balancing will spread load
+ */
+ return cpumask_of_cpu(0);
}
#define TARGET_CPUS (target_cpus())

-#define INT_DELIVERY_MODE (dest_Fixed)
+#define INT_DELIVERY_MODE (dest_LowestPrio)
#define INT_DEST_MODE 1 /* logical delivery broadcast to all procs */

static inline unsigned long check_apicid_used(physid_mask_t bitmap, int apicid)


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