[PATCH] oprofile add Pentium Mobile support
From: Philippe Elie
Date: Thu Feb 12 2004 - 16:46:15 EST
Hi Andrew, all
apply cleanly to 2.6.3-rc2
From: Will Cohen <wcohen@xxxxxxxxxx>
Add oprofile support for Pentium Mobile (P6 core). Pentium Mobile needs
to unmask LVPTC vector, since it doesn't hurt other P6 core based cpus
we do it unconditionally for all these.
This patch require userspace tools >= 0.8 (only in sourceforge cvs currently)
regards,
Phil
diff -uprN -X /home/phe/dontdiff-2.6.0 linux-temp/arch/i386/oprofile/nmi_int.c linux-2.5/arch/i386/oprofile/nmi_int.c
--- linux-temp/arch/i386/oprofile/nmi_int.c 2004-02-12 22:00:59.000000000 +0000
+++ linux-2.5/arch/i386/oprofile/nmi_int.c 2004-02-12 22:27:31.000000000 +0000
@@ -335,7 +335,9 @@ static int __init ppro_init(void)
if (cpu_model > 0xd)
return 0;
- if (cpu_model > 5) {
+ if (cpu_model == 9) {
+ nmi_ops.cpu_type = "i386/p6_mobile";
+ } else if (cpu_model > 5) {
nmi_ops.cpu_type = "i386/piii";
} else if (cpu_model > 2) {
nmi_ops.cpu_type = "i386/pii";
diff -uprN -X /home/phe/dontdiff-2.6.0 linux-temp/arch/i386/oprofile/op_model_ppro.c linux-2.5/arch/i386/oprofile/op_model_ppro.c
--- linux-temp/arch/i386/oprofile/op_model_ppro.c 2004-02-12 22:00:59.000000000 +0000
+++ linux-2.5/arch/i386/oprofile/op_model_ppro.c 2004-02-12 22:27:31.000000000 +0000
@@ -13,6 +13,7 @@
#include <linux/oprofile.h>
#include <asm/ptrace.h>
#include <asm/msr.h>
+#include <asm/apic.h>
#include "op_x86_model.h"
#include "op_counter.h"
@@ -101,6 +102,10 @@ static int ppro_check_ctrs(unsigned int
}
}
+ /* Only P6 based Pentium M need to re-unmask the apic vector but it
+ * doesn't hurt other P6 variant */
+ apic_write(APIC_LVTPC, apic_read(APIC_LVTPC) & ~APIC_LVT_MASKED);
+
/* We can't work out if we really handled an interrupt. We
* might have caught a *second* counter just after overflowing
* the interrupt for this counter then arrives
-
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/