Blame src/perfctr-2.7.x/patches/patch-kernel-2.6.12-rc1-mm3

Packit 577717
--- linux-2.6.12-rc1-mm3.perfctr27-ppc64-arch-support/arch/ppc64/Kconfig.~1~	2005-03-28 17:26:13.000000000 +0200
Packit 577717
+++ linux-2.6.12-rc1-mm3.perfctr27-ppc64-arch-support/arch/ppc64/Kconfig	2005-03-28 23:56:30.000000000 +0200
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
--- linux-2.6.12-rc1-mm3.perfctr27-ppc64-arch-support/arch/ppc64/kernel/misc.S.~1~	2005-03-28 17:26:13.000000000 +0200
Packit 577717
+++ linux-2.6.12-rc1-mm3.perfctr27-ppc64-arch-support/arch/ppc64/kernel/misc.S	2005-03-28 23:56:30.000000000 +0200
Packit 577717
@@ -956,6 +956,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
@@ -1232,3 +1238,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
--- linux-2.6.12-rc1-mm3.perfctr27-ppc64-arch-support/arch/ppc64/kernel/process.c.~1~	2005-03-28 17:25:43.000000000 +0200
Packit 577717
+++ linux-2.6.12-rc1-mm3.perfctr27-ppc64-arch-support/arch/ppc64/kernel/process.c	2005-03-28 23:56:30.000000000 +0200
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(&current->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(&current->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
--- linux-2.6.12-rc1-mm3.perfctr27-ppc64-arch-support/include/asm-ppc64/processor.h.~1~	2005-03-28 17:26:21.000000000 +0200
Packit 577717
+++ linux-2.6.12-rc1-mm3.perfctr27-ppc64-arch-support/include/asm-ppc64/processor.h	2005-03-28 23:56:30.000000000 +0200
Packit 577717
@@ -574,6 +574,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
--- linux-2.6.12-rc1-mm3.perfctr27-ppc64-arch-support/include/asm-ppc64/unistd.h.~1~	2005-03-28 17:25:46.000000000 +0200
Packit 577717
+++ linux-2.6.12-rc1-mm3.perfctr27-ppc64-arch-support/include/asm-ppc64/unistd.h	2005-03-28 23:56:30.000000000 +0200
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