|
Packit |
577717 |
diff -rupN linux-2.6.12-rc1-mm1/arch/ppc64/Kconfig linux-2.6.12-rc1-mm1.perfctr27-ppc64-arch-support/arch/ppc64/Kconfig
|
|
Packit |
577717 |
--- linux-2.6.12-rc1-mm1/arch/ppc64/Kconfig 2005-03-22 21:59:07.000000000 +0100
|
|
Packit |
577717 |
+++ linux-2.6.12-rc1-mm1.perfctr27-ppc64-arch-support/arch/ppc64/Kconfig 2005-03-23 02:22:35.000000000 +0100
|
|
Packit |
577717 |
@@ -280,6 +280,7 @@ config LPARCFG
|
|
Packit |
577717 |
|
|
Packit |
577717 |
endmenu
|
|
Packit |
577717 |
|
|
Packit |
577717 |
+source "drivers/perfctr/Kconfig"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
menu "General setup"
|
|
Packit |
577717 |
|
|
Packit |
577717 |
diff -rupN linux-2.6.12-rc1-mm1/arch/ppc64/kernel/misc.S linux-2.6.12-rc1-mm1.perfctr27-ppc64-arch-support/arch/ppc64/kernel/misc.S
|
|
Packit |
577717 |
--- linux-2.6.12-rc1-mm1/arch/ppc64/kernel/misc.S 2005-03-22 21:59:07.000000000 +0100
|
|
Packit |
577717 |
+++ linux-2.6.12-rc1-mm1.perfctr27-ppc64-arch-support/arch/ppc64/kernel/misc.S 2005-03-23 02:22:35.000000000 +0100
|
|
Packit |
577717 |
@@ -960,6 +960,12 @@ _GLOBAL(sys_call_table32)
|
|
Packit |
577717 |
.llong .sys32_request_key
|
|
Packit |
577717 |
.llong .compat_sys_keyctl
|
|
Packit |
577717 |
.llong .compat_sys_waitid
|
|
Packit |
577717 |
+ .llong .sys_ni_syscall /* 273 reserved for sys_ioprio_set */
|
|
Packit |
577717 |
+ .llong .sys_ni_syscall /* 274 reserved for sys_ioprio_get */
|
|
Packit |
577717 |
+ .llong .sys_vperfctr_open /* 275 */
|
|
Packit |
577717 |
+ .llong .sys_vperfctr_control
|
|
Packit |
577717 |
+ .llong .sys_vperfctr_write
|
|
Packit |
577717 |
+ .llong .sys_vperfctr_read
|
|
Packit |
577717 |
|
|
Packit |
577717 |
.balign 8
|
|
Packit |
577717 |
_GLOBAL(sys_call_table)
|
|
Packit |
577717 |
@@ -1236,3 +1242,9 @@ _GLOBAL(sys_call_table)
|
|
Packit |
577717 |
.llong .sys_request_key /* 270 */
|
|
Packit |
577717 |
.llong .sys_keyctl
|
|
Packit |
577717 |
.llong .sys_waitid
|
|
Packit |
577717 |
+ .llong .sys_ni_syscall /* 273 reserved for sys_ioprio_set */
|
|
Packit |
577717 |
+ .llong .sys_ni_syscall /* 274 reserved for sys_ioprio_get */
|
|
Packit |
577717 |
+ .llong .sys_vperfctr_open /* 275 */
|
|
Packit |
577717 |
+ .llong .sys_vperfctr_control
|
|
Packit |
577717 |
+ .llong .sys_vperfctr_write
|
|
Packit |
577717 |
+ .llong .sys_vperfctr_read
|
|
Packit |
577717 |
diff -rupN linux-2.6.12-rc1-mm1/arch/ppc64/kernel/process.c linux-2.6.12-rc1-mm1.perfctr27-ppc64-arch-support/arch/ppc64/kernel/process.c
|
|
Packit |
577717 |
--- linux-2.6.12-rc1-mm1/arch/ppc64/kernel/process.c 2005-03-22 21:58:47.000000000 +0100
|
|
Packit |
577717 |
+++ linux-2.6.12-rc1-mm1.perfctr27-ppc64-arch-support/arch/ppc64/kernel/process.c 2005-03-23 02:22:35.000000000 +0100
|
|
Packit |
577717 |
@@ -36,6 +36,7 @@
|
|
Packit |
577717 |
#include <linux/kallsyms.h>
|
|
Packit |
577717 |
#include <linux/interrupt.h>
|
|
Packit |
577717 |
#include <linux/utsname.h>
|
|
Packit |
577717 |
+#include <linux/perfctr.h>
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#include <asm/pgtable.h>
|
|
Packit |
577717 |
#include <asm/uaccess.h>
|
|
Packit |
577717 |
@@ -225,7 +226,9 @@ struct task_struct *__switch_to(struct t
|
|
Packit |
577717 |
|
|
Packit |
577717 |
|
|
Packit |
577717 |
local_irq_save(flags);
|
|
Packit |
577717 |
+ perfctr_suspend_thread(&prev->thread);
|
|
Packit |
577717 |
last = _switch(old_thread, new_thread);
|
|
Packit |
577717 |
+ perfctr_resume_thread(¤t->thread);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
local_irq_restore(flags);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
@@ -323,6 +326,7 @@ void exit_thread(void)
|
|
Packit |
577717 |
last_task_used_altivec = NULL;
|
|
Packit |
577717 |
#endif /* CONFIG_ALTIVEC */
|
|
Packit |
577717 |
#endif /* CONFIG_SMP */
|
|
Packit |
577717 |
+ perfctr_exit_thread(¤t->thread);
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
void flush_thread(void)
|
|
Packit |
577717 |
@@ -425,6 +429,8 @@ copy_thread(int nr, unsigned long clone_
|
|
Packit |
577717 |
*/
|
|
Packit |
577717 |
kregs->nip = *((unsigned long *)ret_from_fork);
|
|
Packit |
577717 |
|
|
Packit |
577717 |
+ perfctr_copy_task(p, regs);
|
|
Packit |
577717 |
+
|
|
Packit |
577717 |
return 0;
|
|
Packit |
577717 |
}
|
|
Packit |
577717 |
|
|
Packit |
577717 |
diff -rupN linux-2.6.12-rc1-mm1/include/asm-ppc64/processor.h linux-2.6.12-rc1-mm1.perfctr27-ppc64-arch-support/include/asm-ppc64/processor.h
|
|
Packit |
577717 |
--- linux-2.6.12-rc1-mm1/include/asm-ppc64/processor.h 2005-03-22 21:58:51.000000000 +0100
|
|
Packit |
577717 |
+++ linux-2.6.12-rc1-mm1.perfctr27-ppc64-arch-support/include/asm-ppc64/processor.h 2005-03-23 02:22:35.000000000 +0100
|
|
Packit |
577717 |
@@ -578,6 +578,8 @@ struct thread_struct {
|
|
Packit |
577717 |
unsigned long vrsave;
|
|
Packit |
577717 |
int used_vr; /* set if process has used altivec */
|
|
Packit |
577717 |
#endif /* CONFIG_ALTIVEC */
|
|
Packit |
577717 |
+ /* performance counters */
|
|
Packit |
577717 |
+ struct vperfctr *perfctr;
|
|
Packit |
577717 |
};
|
|
Packit |
577717 |
|
|
Packit |
577717 |
#define ARCH_MIN_TASKALIGN 16
|
|
Packit |
577717 |
diff -rupN linux-2.6.12-rc1-mm1/include/asm-ppc64/unistd.h linux-2.6.12-rc1-mm1.perfctr27-ppc64-arch-support/include/asm-ppc64/unistd.h
|
|
Packit |
577717 |
--- linux-2.6.12-rc1-mm1/include/asm-ppc64/unistd.h 2005-03-22 21:58:51.000000000 +0100
|
|
Packit |
577717 |
+++ linux-2.6.12-rc1-mm1.perfctr27-ppc64-arch-support/include/asm-ppc64/unistd.h 2005-03-23 02:22:35.000000000 +0100
|
|
Packit |
577717 |
@@ -283,8 +283,14 @@
|
|
Packit |
577717 |
#define __NR_request_key 270
|
|
Packit |
577717 |
#define __NR_keyctl 271
|
|
Packit |
577717 |
#define __NR_waitid 272
|
|
Packit |
577717 |
+/* 273 is reserved for ioprio_set */
|
|
Packit |
577717 |
+/* 274 is reserved for ioprio_get */
|
|
Packit |
577717 |
+#define __NR_vperfctr_open 275
|
|
Packit |
577717 |
+#define __NR_vperfctr_control (__NR_vperfctr_open+1)
|
|
Packit |
577717 |
+#define __NR_vperfctr_write (__NR_vperfctr_open+2)
|
|
Packit |
577717 |
+#define __NR_vperfctr_read (__NR_vperfctr_open+3)
|
|
Packit |
577717 |
|
|
Packit |
577717 |
-#define __NR_syscalls 273
|
|
Packit |
577717 |
+#define __NR_syscalls 279
|
|
Packit |
577717 |
#ifdef __KERNEL__
|
|
Packit |
577717 |
#define NR_syscalls __NR_syscalls
|
|
Packit |
577717 |
#endif
|