[<prev] [next>] [day] [month] [year] [list]
Message-Id: <200612051107.kB5B72gD017482@frankl.hpl.hp.com>
Date: Tue, 5 Dec 2006 03:07:02 -0800
From: Stephane Eranian <eranian@...nkl.hpl.hp.com>
To: linux-kernel@...r.kernel.org
Cc: eranian@....hp.com
Subject: [PATCH 02/21] 2.6.19 perfmon2 : generic kernel modifications
This patch contains all the modified generic files:
linux/include/linux/sched.h:
- add pfm_context pointer to struct task_struct. This is used
to connect a perfmon2 context to a task when doing per-thread
monitoring.
linux/include/linux/syscalls.h:
- declare prototypes of our new system calls
linux/kernel/sched.c:
- add include perfmon.h to ensure pfm_ctxsw() has a defined prototype
linux/kernel/sys_ni.c:
- add perfmon2 cond_syscall() definitions (when CONFIG_PERFMON is off)
diff --exclude=.git -urp --exclude-from=/tmp/excl37722 linux-2.6.19.base/Makefile linux-2.6.19/Makefile
--- linux-2.6.19.base/Makefile 2006-11-29 13:57:37.000000000 -0800
+++ linux-2.6.19/Makefile 2006-12-03 14:15:47.000000000 -0800
@@ -559,7 +559,7 @@ export mod_strip_cmd
ifeq ($(KBUILD_EXTMOD),)
-core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/
+core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ perfmon/
vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
$(core-y) $(core-m) $(drivers-y) $(drivers-m) \
Only in linux-2.6.19/include/linux: perfmon.h
Only in linux-2.6.19/include/linux: perfmon_dfl_smpl.h
Only in linux-2.6.19/include/linux: perfmon_fmt.h
Only in linux-2.6.19/include/linux: perfmon_pmu.h
diff --exclude=.git -urp --exclude-from=/tmp/excl37722 linux-2.6.19.base/include/linux/sched.h linux-2.6.19/include/linux/sched.h
--- linux-2.6.19.base/include/linux/sched.h 2006-11-29 13:57:37.000000000 -0800
+++ linux-2.6.19/include/linux/sched.h 2006-12-03 14:15:47.000000000 -0800
@@ -87,6 +87,7 @@ struct sched_param {
struct exec_domain;
struct futex_pi_state;
+struct pfm_context;
/*
* List of flags we want to share for kernel threads,
@@ -1023,6 +1024,9 @@ struct task_struct {
#ifdef CONFIG_TASK_DELAY_ACCT
struct task_delay_info *delays;
#endif
+#ifdef CONFIG_PERFMON
+ struct pfm_context *pfm_context;
+#endif
};
static inline pid_t process_group(struct task_struct *tsk)
diff --exclude=.git -urp --exclude-from=/tmp/excl37722 linux-2.6.19.base/include/linux/syscalls.h linux-2.6.19/include/linux/syscalls.h
--- linux-2.6.19.base/include/linux/syscalls.h 2006-11-29 13:57:37.000000000 -0800
+++ linux-2.6.19/include/linux/syscalls.h 2006-12-03 14:15:47.000000000 -0800
@@ -29,6 +29,13 @@ struct msqid_ds;
struct new_utsname;
struct nfsctl_arg;
struct __old_kernel_stat;
+struct pfarg_ctx;
+struct pfarg_pmc;
+struct pfarg_pmd;
+struct pfarg_start;
+struct pfarg_load;
+struct pfarg_setinfo;
+struct pfarg_setdesc;
struct pollfd;
struct rlimit;
struct rusage;
@@ -605,4 +612,27 @@ asmlinkage long sys_getcpu(unsigned __us
int kernel_execve(const char *filename, char *const argv[], char *const envp[]);
+asmlinkage long sys_pfm_create_context(struct pfarg_ctx __user *ureq,
+ void __user *uarg, size_t smpl_size);
+asmlinkage long sys_pfm_write_pmcs(int fd, struct pfarg_pmc __user *ureq,
+ int count);
+asmlinkage long sys_pfm_write_pmds(int fd, struct pfarg_pmd __user *ureq,
+ int count);
+asmlinkage long sys_pfm_read_pmds(int fd, struct pfarg_pmd __user *ureq,
+ int count);
+asmlinkage long sys_pfm_restart(int fd);
+asmlinkage long sys_pfm_stop(int fd);
+asmlinkage long sys_pfm_start(int fd, struct pfarg_start __user *ureq);
+asmlinkage long sys_pfm_load_context(int fd, struct pfarg_load __user *ureq);
+asmlinkage long sys_pfm_unload_context(int fd);
+asmlinkage long sys_pfm_delete_evtsets(int fd,
+ struct pfarg_setinfo __user *ureq,
+ int count);
+asmlinkage long sys_pfm_create_evtsets(int fd,
+ struct pfarg_setdesc __user *ureq,
+ int count);
+asmlinkage long sys_pfm_getinfo_evtsets(int fd,
+ struct pfarg_setinfo __user *ureq,
+ int count);
+
#endif
diff --exclude=.git -urp --exclude-from=/tmp/excl37722 linux-2.6.19.base/kernel/sched.c linux-2.6.19/kernel/sched.c
--- linux-2.6.19.base/kernel/sched.c 2006-11-29 13:57:37.000000000 -0800
+++ linux-2.6.19/kernel/sched.c 2006-12-03 14:15:47.000000000 -0800
@@ -52,6 +52,7 @@
#include <linux/tsacct_kern.h>
#include <linux/kprobes.h>
#include <linux/delayacct.h>
+#include <linux/perfmon.h>
#include <asm/tlb.h>
#include <asm/unistd.h>
diff --exclude=.git -urp --exclude-from=/tmp/excl37722 linux-2.6.19.base/kernel/sys_ni.c linux-2.6.19/kernel/sys_ni.c
--- linux-2.6.19.base/kernel/sys_ni.c 2006-11-29 13:57:37.000000000 -0800
+++ linux-2.6.19/kernel/sys_ni.c 2006-12-03 14:15:47.000000000 -0800
@@ -113,6 +113,19 @@ cond_syscall(sys_vm86);
cond_syscall(compat_sys_ipc);
cond_syscall(compat_sys_sysctl);
+cond_syscall(sys_pfm_create_context);
+cond_syscall(sys_pfm_write_pmcs);
+cond_syscall(sys_pfm_write_pmds);
+cond_syscall(sys_pfm_read_pmds);
+cond_syscall(sys_pfm_restart);
+cond_syscall(sys_pfm_start);
+cond_syscall(sys_pfm_stop);
+cond_syscall(sys_pfm_load_context);
+cond_syscall(sys_pfm_unload_context);
+cond_syscall(sys_pfm_create_evtsets);
+cond_syscall(sys_pfm_delete_evtsets);
+cond_syscall(sys_pfm_getinfo_evtsets);
+
/* arch-specific weak syscall entries */
cond_syscall(sys_pciconfig_read);
cond_syscall(sys_pciconfig_write);
Only in linux-2.6.19: perfmon
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists