diff options
author | Stephane Eranian <eranian@google.com> | 2011-02-14 11:20:01 +0200 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2011-02-16 13:30:48 +0100 |
commit | e5d1367f17ba6a6fed5fd8b74e4d5720923e0c25 (patch) | |
tree | 5862b4cddb7c88e0513e503cb3f46c60da2eeb6f /include/linux/cgroup.h | |
parent | d41d5a01631af821d3a3447e6613a316f5ee6c25 (diff) | |
download | kernel_samsung_espresso10-e5d1367f17ba6a6fed5fd8b74e4d5720923e0c25.zip kernel_samsung_espresso10-e5d1367f17ba6a6fed5fd8b74e4d5720923e0c25.tar.gz kernel_samsung_espresso10-e5d1367f17ba6a6fed5fd8b74e4d5720923e0c25.tar.bz2 |
perf: Add cgroup support
This kernel patch adds the ability to filter monitoring based on
container groups (cgroups). This is for use in per-cpu mode only.
The cgroup to monitor is passed as a file descriptor in the pid
argument to the syscall. The file descriptor must be opened to
the cgroup name in the cgroup filesystem. For instance, if the
cgroup name is foo and cgroupfs is mounted in /cgroup, then the
file descriptor is opened to /cgroup/foo. Cgroup mode is
activated by passing PERF_FLAG_PID_CGROUP in the flags argument
to the syscall.
For instance to measure in cgroup foo on CPU1 assuming
cgroupfs is mounted under /cgroup:
struct perf_event_attr attr;
int cgroup_fd, fd;
cgroup_fd = open("/cgroup/foo", O_RDONLY);
fd = perf_event_open(&attr, cgroup_fd, 1, -1, PERF_FLAG_PID_CGROUP);
close(cgroup_fd);
Signed-off-by: Stephane Eranian <eranian@google.com>
[ added perf_cgroup_{exit,attach} ]
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <4d590250.114ddf0a.689e.4482@mx.google.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/cgroup.h')
-rw-r--r-- | include/linux/cgroup.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index 38117d9..e654fa2 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h @@ -627,6 +627,7 @@ bool css_is_ancestor(struct cgroup_subsys_state *cg, /* Get id and depth of css */ unsigned short css_id(struct cgroup_subsys_state *css); unsigned short css_depth(struct cgroup_subsys_state *css); +struct cgroup_subsys_state *cgroup_css_from_dir(struct file *f, int id); #else /* !CONFIG_CGROUPS */ |