From: tip-bot for Arnaldo Carvalho de Melo <acme@redhat.com>
To: linux-tip-commits@vger.kernel.org
Cc: linux-kernel@vger.kernel.org, eranian@google.com,
paulus@samba.org, acme@redhat.com, hpa@zytor.com,
mingo@redhat.com, tzanussi@gmail.com, peterz@infradead.org,
efault@gmx.de, fweisbec@gmail.com, tglx@linutronix.de,
mingo@elte.hu
Subject: [tip:perf/core] perf tools: Introduce event selectors
Date: Tue, 4 Jan 2011 08:21:17 GMT [thread overview]
Message-ID: <tip-69aad6f1ee69546dea8535ab8f3da9f445d57328@git.kernel.org> (raw)
In-Reply-To: <new-submission>
Commit-ID: 69aad6f1ee69546dea8535ab8f3da9f445d57328
Gitweb: http://git.kernel.org/tip/69aad6f1ee69546dea8535ab8f3da9f445d57328
Author: Arnaldo Carvalho de Melo <acme@redhat.com>
AuthorDate: Mon, 3 Jan 2011 16:39:04 -0200
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Mon, 3 Jan 2011 16:39:04 -0200
perf tools: Introduce event selectors
Out of ad-hoc code and global arrays with hard coded sizes.
This is the first step on having a library that will be first
used on regression tests in the 'perf test' tool.
[acme@felicio linux]$ size /tmp/perf.before
text data bss dec hex filename
1273776 97384 5104416 6475576 62cf38 /tmp/perf.before
[acme@felicio linux]$ size /tmp/perf.new
text data bss dec hex filename
1275422 97416 1392416 2765254 2a31c6 /tmp/perf.new
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Tom Zanussi <tzanussi@gmail.com>
LKML-Reference: <new-submission>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/Makefile | 4 +
tools/perf/builtin-record.c | 113 +++++++++++------------
tools/perf/builtin-stat.c | 175 ++++++++++++++++++++++--------------
tools/perf/builtin-top.c | 176 +++++++++++++++++++++---------------
tools/perf/util/evsel.c | 35 +++++++
tools/perf/util/evsel.h | 24 +++++
| 9 +-
| 3 +-
tools/perf/util/parse-events.c | 47 +++++++----
tools/perf/util/parse-events.h | 17 +++--
tools/perf/util/trace-event-info.c | 30 ++++---
tools/perf/util/trace-event.h | 5 +-
tools/perf/util/xyarray.c | 20 ++++
tools/perf/util/xyarray.h | 20 ++++
14 files changed, 433 insertions(+), 245 deletions(-)
diff --git a/tools/perf/Makefile b/tools/perf/Makefile
index ac6692c..1b9b13e 100644
--- a/tools/perf/Makefile
+++ b/tools/perf/Makefile
@@ -396,6 +396,7 @@ LIB_H += util/build-id.h
LIB_H += util/debug.h
LIB_H += util/debugfs.h
LIB_H += util/event.h
+LIB_H += util/evsel.h
LIB_H += util/exec_cmd.h
LIB_H += util/types.h
LIB_H += util/levenshtein.h
@@ -404,6 +405,7 @@ LIB_H += util/parse-options.h
LIB_H += util/parse-events.h
LIB_H += util/quote.h
LIB_H += util/util.h
+LIB_H += util/xyarray.h
LIB_H += util/header.h
LIB_H += util/help.h
LIB_H += util/session.h
@@ -433,6 +435,7 @@ LIB_OBJS += $(OUTPUT)util/ctype.o
LIB_OBJS += $(OUTPUT)util/debugfs.o
LIB_OBJS += $(OUTPUT)util/environment.o
LIB_OBJS += $(OUTPUT)util/event.o
+LIB_OBJS += $(OUTPUT)util/evsel.o
LIB_OBJS += $(OUTPUT)util/exec_cmd.o
LIB_OBJS += $(OUTPUT)util/help.o
LIB_OBJS += $(OUTPUT)util/levenshtein.o
@@ -470,6 +473,7 @@ LIB_OBJS += $(OUTPUT)util/sort.o
LIB_OBJS += $(OUTPUT)util/hist.o
LIB_OBJS += $(OUTPUT)util/probe-event.o
LIB_OBJS += $(OUTPUT)util/util.o
+LIB_OBJS += $(OUTPUT)util/xyarray.o
LIB_OBJS += $(OUTPUT)util/cpumap.o
BUILTIN_OBJS += $(OUTPUT)builtin-annotate.o
diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
index 50efbd5..e68aee3 100644
--- a/tools/perf/builtin-record.c
+++ b/tools/perf/builtin-record.c
@@ -18,6 +18,7 @@
#include "util/header.h"
#include "util/event.h"
+#include "util/evsel.h"
#include "util/debug.h"
#include "util/session.h"
#include "util/symbol.h"
@@ -27,13 +28,13 @@
#include <sched.h>
#include <sys/mman.h>
+#define FD(e, x, y) (*(int *)xyarray__entry(e->fd, x, y))
+
enum write_mode_t {
WRITE_FORCE,
WRITE_APPEND
};
-static int *fd[MAX_NR_CPUS][MAX_COUNTERS];
-
static u64 user_interval = ULLONG_MAX;
static u64 default_interval = 0;
static u64 sample_type;
@@ -81,7 +82,6 @@ static struct perf_session *session;
static const char *cpu_list;
struct mmap_data {
- int counter;
void *base;
unsigned int mask;
unsigned int prev;
@@ -229,12 +229,12 @@ static struct perf_header_attr *get_header_attr(struct perf_event_attr *a, int n
return h_attr;
}
-static void create_counter(int counter, int cpu)
+static void create_counter(struct perf_evsel *evsel, int cpu)
{
- char *filter = filters[counter];
- struct perf_event_attr *attr = attrs + counter;
+ char *filter = evsel->filter;
+ struct perf_event_attr *attr = &evsel->attr;
struct perf_header_attr *h_attr;
- int track = !counter; /* only the first counter needs these */
+ int track = !evsel->idx; /* only the first counter needs these */
int thread_index;
int ret;
struct {
@@ -320,10 +320,9 @@ retry_sample_id:
for (thread_index = 0; thread_index < thread_num; thread_index++) {
try_again:
- fd[nr_cpu][counter][thread_index] = sys_perf_event_open(attr,
- all_tids[thread_index], cpu, group_fd, 0);
+ FD(evsel, nr_cpu, thread_index) = sys_perf_event_open(attr, all_tids[thread_index], cpu, group_fd, 0);
- if (fd[nr_cpu][counter][thread_index] < 0) {
+ if (FD(evsel, nr_cpu, thread_index) < 0) {
int err = errno;
if (err == EPERM || err == EACCES)
@@ -360,7 +359,7 @@ try_again:
}
printf("\n");
error("sys_perf_event_open() syscall returned with %d (%s). /bin/dmesg may provide additional information.\n",
- fd[nr_cpu][counter][thread_index], strerror(err));
+ FD(evsel, nr_cpu, thread_index), strerror(err));
#if defined(__i386__) || defined(__x86_64__)
if (attr->type == PERF_TYPE_HARDWARE && err == EOPNOTSUPP)
@@ -374,7 +373,7 @@ try_again:
exit(-1);
}
- h_attr = get_header_attr(attr, counter);
+ h_attr = get_header_attr(attr, evsel->idx);
if (h_attr == NULL)
die("nomem\n");
@@ -385,7 +384,7 @@ try_again:
}
}
- if (read(fd[nr_cpu][counter][thread_index], &read_data, sizeof(read_data)) == -1) {
+ if (read(FD(evsel, nr_cpu, thread_index), &read_data, sizeof(read_data)) == -1) {
perror("Unable to read perf file descriptor");
exit(-1);
}
@@ -395,43 +394,44 @@ try_again:
exit(-1);
}
- assert(fd[nr_cpu][counter][thread_index] >= 0);
- fcntl(fd[nr_cpu][counter][thread_index], F_SETFL, O_NONBLOCK);
+ assert(FD(evsel, nr_cpu, thread_index) >= 0);
+ fcntl(FD(evsel, nr_cpu, thread_index), F_SETFL, O_NONBLOCK);
/*
* First counter acts as the group leader:
*/
if (group && group_fd == -1)
- group_fd = fd[nr_cpu][counter][thread_index];
-
- if (counter || thread_index) {
- ret = ioctl(fd[nr_cpu][counter][thread_index],
- PERF_EVENT_IOC_SET_OUTPUT,
- fd[nr_cpu][0][0]);
+ group_fd = FD(evsel, nr_cpu, thread_index);
+
+ if (evsel->idx || thread_index) {
+ struct perf_evsel *first;
+ first = list_entry(evsel_list.next, struct perf_evsel, node);
+ ret = ioctl(FD(evsel, nr_cpu, thread_index),
+ PERF_EVENT_IOC_SET_OUTPUT,
+ FD(first, nr_cpu, 0));
if (ret) {
error("failed to set output: %d (%s)\n", errno,
strerror(errno));
exit(-1);
}
} else {
- mmap_array[nr_cpu].counter = counter;
mmap_array[nr_cpu].prev = 0;
mmap_array[nr_cpu].mask = mmap_pages*page_size - 1;
mmap_array[nr_cpu].base = mmap(NULL, (mmap_pages+1)*page_size,
- PROT_READ|PROT_WRITE, MAP_SHARED, fd[nr_cpu][counter][thread_index], 0);
+ PROT_READ | PROT_WRITE, MAP_SHARED, FD(evsel, nr_cpu, thread_index), 0);
if (mmap_array[nr_cpu].base == MAP_FAILED) {
error("failed to mmap with %d (%s)\n", errno, strerror(errno));
exit(-1);
}
- event_array[nr_poll].fd = fd[nr_cpu][counter][thread_index];
+ event_array[nr_poll].fd = FD(evsel, nr_cpu, thread_index);
event_array[nr_poll].events = POLLIN;
nr_poll++;
}
if (filter != NULL) {
- ret = ioctl(fd[nr_cpu][counter][thread_index],
- PERF_EVENT_IOC_SET_FILTER, filter);
+ ret = ioctl(FD(evsel, nr_cpu, thread_index),
+ PERF_EVENT_IOC_SET_FILTER, filter);
if (ret) {
error("failed to set filter with %d (%s)\n", errno,
strerror(errno));
@@ -446,11 +446,12 @@ try_again:
static void open_counters(int cpu)
{
- int counter;
+ struct perf_evsel *pos;
group_fd = -1;
- for (counter = 0; counter < nr_counters; counter++)
- create_counter(counter, cpu);
+
+ list_for_each_entry(pos, &evsel_list, node)
+ create_counter(pos, cpu);
nr_cpu++;
}
@@ -537,7 +538,7 @@ static void mmap_read_all(void)
static int __cmd_record(int argc, const char **argv)
{
- int i, counter;
+ int i;
struct stat st;
int flags;
int err;
@@ -604,7 +605,7 @@ static int __cmd_record(int argc, const char **argv)
goto out_delete_session;
}
- if (have_tracepoints(attrs, nr_counters))
+ if (have_tracepoints(&evsel_list))
perf_header__set_feat(&session->header, HEADER_TRACE_INFO);
/*
@@ -666,12 +667,6 @@ static int __cmd_record(int argc, const char **argv)
close(child_ready_pipe[0]);
}
- nr_cpus = read_cpu_map(cpu_list);
- if (nr_cpus < 1) {
- perror("failed to collect number of CPUs");
- return -1;
- }
-
if (!system_wide && no_inherit && !cpu_list) {
open_counters(-1);
} else {
@@ -711,7 +706,7 @@ static int __cmd_record(int argc, const char **argv)
return err;
}
- if (have_tracepoints(attrs, nr_counters)) {
+ if (have_tracepoints(&evsel_list)) {
/*
* FIXME err <= 0 here actually means that
* there were no tracepoints so its not really
@@ -720,8 +715,7 @@ static int __cmd_record(int argc, const char **argv)
* return this more properly and also
* propagate errors that now are calling die()
*/
- err = event__synthesize_tracing_data(output, attrs,
- nr_counters,
+ err = event__synthesize_tracing_data(output, &evsel_list,
process_synthesized_event,
session);
if (err <= 0) {
@@ -795,13 +789,13 @@ static int __cmd_record(int argc, const char **argv)
if (done) {
for (i = 0; i < nr_cpu; i++) {
- for (counter = 0;
- counter < nr_counters;
- counter++) {
+ struct perf_evsel *pos;
+
+ list_for_each_entry(pos, &evsel_list, node) {
for (thread = 0;
thread < thread_num;
thread++)
- ioctl(fd[i][counter][thread],
+ ioctl(FD(pos, i, thread),
PERF_EVENT_IOC_DISABLE);
}
}
@@ -887,7 +881,8 @@ const struct option record_options[] = {
int cmd_record(int argc, const char **argv, const char *prefix __used)
{
- int i, j, err = -ENOMEM;
+ int err = -ENOMEM;
+ struct perf_evsel *pos;
argc = parse_options(argc, argv, record_options, record_usage,
PARSE_OPT_STOP_AT_NON_OPTION);
@@ -910,10 +905,9 @@ int cmd_record(int argc, const char **argv, const char *prefix __used)
if (no_buildid_cache || no_buildid)
disable_buildid_cache();
- if (!nr_counters) {
- nr_counters = 1;
- attrs[0].type = PERF_TYPE_HARDWARE;
- attrs[0].config = PERF_COUNT_HW_CPU_CYCLES;
+ if (list_empty(&evsel_list) && perf_evsel_list__create_default() < 0) {
+ pr_err("Not enough memory for event selector list\n");
+ goto out_symbol_exit;
}
if (target_pid != -1) {
@@ -933,12 +927,15 @@ int cmd_record(int argc, const char **argv, const char *prefix __used)
thread_num = 1;
}
- for (i = 0; i < MAX_NR_CPUS; i++) {
- for (j = 0; j < MAX_COUNTERS; j++) {
- fd[i][j] = malloc(sizeof(int)*thread_num);
- if (!fd[i][j])
- goto out_free_fd;
- }
+ nr_cpus = read_cpu_map(cpu_list);
+ if (nr_cpus < 1) {
+ perror("failed to collect number of CPUs");
+ return -1;
+ }
+
+ list_for_each_entry(pos, &evsel_list, node) {
+ if (perf_evsel__alloc_fd(pos, nr_cpus, thread_num) < 0)
+ goto out_free_fd;
}
event_array = malloc(
sizeof(struct pollfd)*MAX_NR_CPUS*MAX_COUNTERS*thread_num);
@@ -968,10 +965,8 @@ int cmd_record(int argc, const char **argv, const char *prefix __used)
out_free_event_array:
free(event_array);
out_free_fd:
- for (i = 0; i < MAX_NR_CPUS; i++) {
- for (j = 0; j < MAX_COUNTERS; j++)
- free(fd[i][j]);
- }
+ list_for_each_entry(pos, &evsel_list, node)
+ perf_evsel__free_fd(pos);
free(all_tids);
all_tids = NULL;
out_symbol_exit:
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 7ff746d..511ebaf 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -43,6 +43,7 @@
#include "util/parse-options.h"
#include "util/parse-events.h"
#include "util/event.h"
+#include "util/evsel.h"
#include "util/debug.h"
#include "util/header.h"
#include "util/cpumap.h"
@@ -52,6 +53,8 @@
#include <math.h>
#include <locale.h>
+#define FD(e, x, y) (*(int *)xyarray__entry(e->fd, x, y))
+
#define DEFAULT_SEPARATOR " "
static struct perf_event_attr default_attrs[] = {
@@ -90,16 +93,11 @@ static const char *cpu_list;
static const char *csv_sep = NULL;
static bool csv_output = false;
-
-static int *fd[MAX_NR_CPUS][MAX_COUNTERS];
-
-static int event_scaled[MAX_COUNTERS];
-
-static struct {
+struct cpu_counts {
u64 val;
u64 ena;
u64 run;
-} cpu_counts[MAX_NR_CPUS][MAX_COUNTERS];
+};
static volatile int done = 0;
@@ -108,6 +106,26 @@ struct stats
double n, mean, M2;
};
+struct perf_stat {
+ struct stats res_stats[3];
+ int scaled;
+ struct cpu_counts cpu_counts[];
+};
+
+static int perf_evsel__alloc_stat_priv(struct perf_evsel *evsel, int ncpus)
+{
+ size_t priv_size = (sizeof(struct perf_stat) +
+ (ncpus * sizeof(struct cpu_counts)));
+ evsel->priv = zalloc(priv_size);
+ return evsel->priv == NULL ? -ENOMEM : 0;
+}
+
+static void perf_evsel__free_stat_priv(struct perf_evsel *evsel)
+{
+ free(evsel->priv);
+ evsel->priv = NULL;
+}
+
static void update_stats(struct stats *stats, u64 val)
{
double delta;
@@ -147,22 +165,21 @@ static double stddev_stats(struct stats *stats)
return sqrt(variance_mean);
}
-struct stats event_res_stats[MAX_COUNTERS][3];
struct stats runtime_nsecs_stats[MAX_NR_CPUS];
struct stats runtime_cycles_stats[MAX_NR_CPUS];
struct stats runtime_branches_stats[MAX_NR_CPUS];
struct stats walltime_nsecs_stats;
-#define MATCH_EVENT(t, c, counter) \
- (attrs[counter].type == PERF_TYPE_##t && \
- attrs[counter].config == PERF_COUNT_##c)
+#define MATCH_EVENT(t, c, evsel) \
+ (evsel->attr.type == PERF_TYPE_##t && \
+ evsel->attr.config == PERF_COUNT_##c)
#define ERR_PERF_OPEN \
"counter %d, sys_perf_event_open() syscall returned with %d (%s). /bin/dmesg may provide additional information."
-static int create_perf_stat_counter(int counter, bool *perm_err)
+static int create_perf_stat_counter(struct perf_evsel *evsel, bool *perm_err)
{
- struct perf_event_attr *attr = attrs + counter;
+ struct perf_event_attr *attr = &evsel->attr;
int thread;
int ncreated = 0;
@@ -174,13 +191,13 @@ static int create_perf_stat_counter(int counter, bool *perm_err)
int cpu;
for (cpu = 0; cpu < nr_cpus; cpu++) {
- fd[cpu][counter][0] = sys_perf_event_open(attr,
+ FD(evsel, cpu, 0) = sys_perf_event_open(attr,
-1, cpumap[cpu], -1, 0);
- if (fd[cpu][counter][0] < 0) {
+ if (FD(evsel, cpu, 0) < 0) {
if (errno == EPERM || errno == EACCES)
*perm_err = true;
- error(ERR_PERF_OPEN, counter,
- fd[cpu][counter][0], strerror(errno));
+ error(ERR_PERF_OPEN, evsel->idx,
+ FD(evsel, cpu, 0), strerror(errno));
} else {
++ncreated;
}
@@ -192,13 +209,13 @@ static int create_perf_stat_counter(int counter, bool *perm_err)
attr->enable_on_exec = 1;
}
for (thread = 0; thread < thread_num; thread++) {
- fd[0][counter][thread] = sys_perf_event_open(attr,
+ FD(evsel, 0, thread) = sys_perf_event_open(attr,
all_tids[thread], -1, -1, 0);
- if (fd[0][counter][thread] < 0) {
+ if (FD(evsel, 0, thread) < 0) {
if (errno == EPERM || errno == EACCES)
*perm_err = true;
- error(ERR_PERF_OPEN, counter,
- fd[0][counter][thread],
+ error(ERR_PERF_OPEN, evsel->idx,
+ FD(evsel, 0, thread),
strerror(errno));
} else {
++ncreated;
@@ -212,7 +229,7 @@ static int create_perf_stat_counter(int counter, bool *perm_err)
/*
* Does the counter have nsecs as a unit?
*/
-static inline int nsec_counter(int counter)
+static inline int nsec_counter(struct perf_evsel *counter)
{
if (MATCH_EVENT(SOFTWARE, SW_CPU_CLOCK, counter) ||
MATCH_EVENT(SOFTWARE, SW_TASK_CLOCK, counter))
@@ -225,8 +242,9 @@ static inline int nsec_counter(int counter)
* Read out the results of a single counter:
* aggregate counts across CPUs in system-wide mode
*/
-static void read_counter_aggr(int counter)
+static void read_counter_aggr(struct perf_evsel *counter)
{
+ struct perf_stat *ps = counter->priv;
u64 count[3], single_count[3];
int cpu;
size_t res, nv;
@@ -238,15 +256,15 @@ static void read_counter_aggr(int counter)
nv = scale ? 3 : 1;
for (cpu = 0; cpu < nr_cpus; cpu++) {
for (thread = 0; thread < thread_num; thread++) {
- if (fd[cpu][counter][thread] < 0)
+ if (FD(counter, cpu, thread) < 0)
continue;
- res = read(fd[cpu][counter][thread],
+ res = read(FD(counter, cpu, thread),
single_count, nv * sizeof(u64));
assert(res == nv * sizeof(u64));
- close(fd[cpu][counter][thread]);
- fd[cpu][counter][thread] = -1;
+ close(FD(counter, cpu, thread));
+ FD(counter, cpu, thread) = -1;
count[0] += single_count[0];
if (scale) {
@@ -259,20 +277,20 @@ static void read_counter_aggr(int counter)
scaled = 0;
if (scale) {
if (count[2] == 0) {
- event_scaled[counter] = -1;
+ ps->scaled = -1;
count[0] = 0;
return;
}
if (count[2] < count[1]) {
- event_scaled[counter] = 1;
+ ps->scaled = 1;
count[0] = (unsigned long long)
((double)count[0] * count[1] / count[2] + 0.5);
}
}
for (i = 0; i < 3; i++)
- update_stats(&event_res_stats[counter][i], count[i]);
+ update_stats(&ps->res_stats[i], count[i]);
if (verbose) {
fprintf(stderr, "%s: %Ld %Ld %Ld\n", event_name(counter),
@@ -294,8 +312,9 @@ static void read_counter_aggr(int counter)
* Read out the results of a single counter:
* do not aggregate counts across CPUs in system-wide mode
*/
-static void read_counter(int counter)
+static void read_counter(struct perf_evsel *counter)
{
+ struct cpu_counts *cpu_counts = counter->priv;
u64 count[3];
int cpu;
size_t res, nv;
@@ -306,15 +325,15 @@ static void read_counter(int counter)
for (cpu = 0; cpu < nr_cpus; cpu++) {
- if (fd[cpu][counter][0] < 0)
+ if (FD(counter, cpu, 0) < 0)
continue;
- res = read(fd[cpu][counter][0], count, nv * sizeof(u64));
+ res = read(FD(counter, cpu, 0), count, nv * sizeof(u64));
assert(res == nv * sizeof(u64));
- close(fd[cpu][counter][0]);
- fd[cpu][counter][0] = -1;
+ close(FD(counter, cpu, 0));
+ FD(counter, cpu, 0) = -1;
if (scale) {
if (count[2] == 0) {
@@ -324,9 +343,9 @@ static void read_counter(int counter)
((double)count[0] * count[1] / count[2] + 0.5);
}
}
- cpu_counts[cpu][counter].val = count[0]; /* scaled count */
- cpu_counts[cpu][counter].ena = count[1];
- cpu_counts[cpu][counter].run = count[2];
+ cpu_counts[cpu].val = count[0]; /* scaled count */
+ cpu_counts[cpu].ena = count[1];
+ cpu_counts[cpu].run = count[2];
if (MATCH_EVENT(SOFTWARE, SW_TASK_CLOCK, counter))
update_stats(&runtime_nsecs_stats[cpu], count[0]);
@@ -340,8 +359,9 @@ static void read_counter(int counter)
static int run_perf_stat(int argc __used, const char **argv)
{
unsigned long long t0, t1;
+ struct perf_evsel *counter;
int status = 0;
- int counter, ncreated = 0;
+ int ncreated = 0;
int child_ready_pipe[2], go_pipe[2];
bool perm_err = false;
const bool forks = (argc > 0);
@@ -401,7 +421,7 @@ static int run_perf_stat(int argc __used, const char **argv)
close(child_ready_pipe[0]);
}
- for (counter = 0; counter < nr_counters; counter++)
+ list_for_each_entry(counter, &evsel_list, node)
ncreated += create_perf_stat_counter(counter, &perm_err);
if (ncreated < nr_counters) {
@@ -433,25 +453,28 @@ static int run_perf_stat(int argc __used, const char **argv)
update_stats(&walltime_nsecs_stats, t1 - t0);
if (no_aggr) {
- for (counter = 0; counter < nr_counters; counter++)
+ list_for_each_entry(counter, &evsel_list, node)
read_counter(counter);
} else {
- for (counter = 0; counter < nr_counters; counter++)
+ list_for_each_entry(counter, &evsel_list, node)
read_counter_aggr(counter);
}
return WEXITSTATUS(status);
}
-static void print_noise(int counter, double avg)
+static void print_noise(struct perf_evsel *evsel, double avg)
{
+ struct perf_stat *ps;
+
if (run_count == 1)
return;
+ ps = evsel->priv;
fprintf(stderr, " ( +- %7.3f%% )",
- 100 * stddev_stats(&event_res_stats[counter][0]) / avg);
+ 100 * stddev_stats(&ps->res_stats[0]) / avg);
}
-static void nsec_printout(int cpu, int counter, double avg)
+static void nsec_printout(int cpu, struct perf_evsel *counter, double avg)
{
double msecs = avg / 1e6;
char cpustr[16] = { '\0', };
@@ -473,7 +496,7 @@ static void nsec_printout(int cpu, int counter, double avg)
}
}
-static void abs_printout(int cpu, int counter, double avg)
+static void abs_printout(int cpu, struct perf_evsel *counter, double avg)
{
double total, ratio = 0.0;
char cpustr[16] = { '\0', };
@@ -528,10 +551,11 @@ static void abs_printout(int cpu, int counter, double avg)
* Print out the results of a single counter:
* aggregated counts in system-wide mode
*/
-static void print_counter_aggr(int counter)
+static void print_counter_aggr(struct perf_evsel *counter)
{
- double avg = avg_stats(&event_res_stats[counter][0]);
- int scaled = event_scaled[counter];
+ struct perf_stat *ps = counter->priv;
+ double avg = avg_stats(&ps->res_stats[0]);
+ int scaled = ps->scaled;
if (scaled == -1) {
fprintf(stderr, "%*s%s%-24s\n",
@@ -555,8 +579,8 @@ static void print_counter_aggr(int counter)
if (scaled) {
double avg_enabled, avg_running;
- avg_enabled = avg_stats(&event_res_stats[counter][1]);
- avg_running = avg_stats(&event_res_stats[counter][2]);
+ avg_enabled = avg_stats(&ps->res_stats[1]);
+ avg_running = avg_stats(&ps->res_stats[2]);
fprintf(stderr, " (scaled from %.2f%%)",
100 * avg_running / avg_enabled);
@@ -569,15 +593,16 @@ static void print_counter_aggr(int counter)
* Print out the results of a single counter:
* does not use aggregated count in system-wide
*/
-static void print_counter(int counter)
+static void print_counter(struct perf_evsel *counter)
{
+ struct perf_stat *ps = counter->priv;
u64 ena, run, val;
int cpu;
for (cpu = 0; cpu < nr_cpus; cpu++) {
- val = cpu_counts[cpu][counter].val;
- ena = cpu_counts[cpu][counter].ena;
- run = cpu_counts[cpu][counter].run;
+ val = ps->cpu_counts[cpu].val;
+ ena = ps->cpu_counts[cpu].ena;
+ run = ps->cpu_counts[cpu].run;
if (run == 0 || ena == 0) {
fprintf(stderr, "CPU%*d%s%*s%s%-24s",
csv_output ? 0 : -4,
@@ -609,7 +634,8 @@ static void print_counter(int counter)
static void print_stat(int argc, const char **argv)
{
- int i, counter;
+ struct perf_evsel *counter;
+ int i;
fflush(stdout);
@@ -632,10 +658,10 @@ static void print_stat(int argc, const char **argv)
}
if (no_aggr) {
- for (counter = 0; counter < nr_counters; counter++)
+ list_for_each_entry(counter, &evsel_list, node)
print_counter(counter);
} else {
- for (counter = 0; counter < nr_counters; counter++)
+ list_for_each_entry(counter, &evsel_list, node)
print_counter_aggr(counter);
}
@@ -720,8 +746,8 @@ static const struct option options[] = {
int cmd_stat(int argc, const char **argv, const char *prefix __used)
{
- int status;
- int i,j;
+ struct perf_evsel *pos;
+ int status = -ENOMEM;
setlocale(LC_ALL, "");
@@ -757,8 +783,18 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used)
/* Set attrs and nr_counters if no event is selected and !null_run */
if (!null_run && !nr_counters) {
- memcpy(attrs, default_attrs, sizeof(default_attrs));
+ size_t c;
+
nr_counters = ARRAY_SIZE(default_attrs);
+
+ for (c = 0; c < ARRAY_SIZE(default_attrs); ++c) {
+ pos = perf_evsel__new(default_attrs[c].type,
+ default_attrs[c].config,
+ nr_counters);
+ if (pos == NULL)
+ goto out;
+ list_add(&pos->node, &evsel_list);
+ }
}
if (system_wide)
@@ -786,12 +822,10 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used)
thread_num = 1;
}
- for (i = 0; i < MAX_NR_CPUS; i++) {
- for (j = 0; j < MAX_COUNTERS; j++) {
- fd[i][j] = malloc(sizeof(int)*thread_num);
- if (!fd[i][j])
- return -ENOMEM;
- }
+ list_for_each_entry(pos, &evsel_list, node) {
+ if (perf_evsel__alloc_stat_priv(pos, nr_cpus) < 0 ||
+ perf_evsel__alloc_fd(pos, nr_cpus, thread_num) < 0)
+ goto out_free_fd;
}
/*
@@ -814,6 +848,11 @@ int cmd_stat(int argc, const char **argv, const char *prefix __used)
if (status != -1)
print_stat(argc, argv);
-
+out_free_fd:
+ list_for_each_entry(pos, &evsel_list, node) {
+ perf_evsel__free_fd(pos);
+ perf_evsel__free_stat_priv(pos);
+ }
+out:
return status;
}
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c
index ae15f04..13a836e 100644
--- a/tools/perf/builtin-top.c
+++ b/tools/perf/builtin-top.c
@@ -21,6 +21,7 @@
#include "perf.h"
#include "util/color.h"
+#include "util/evsel.h"
#include "util/session.h"
#include "util/symbol.h"
#include "util/thread.h"
@@ -29,6 +30,7 @@
#include "util/parse-options.h"
#include "util/parse-events.h"
#include "util/cpumap.h"
+#include "util/xyarray.h"
#include "util/debug.h"
@@ -55,7 +57,7 @@
#include <linux/unistd.h>
#include <linux/types.h>
-static int *fd[MAX_NR_CPUS][MAX_COUNTERS];
+#define FD(e, x, y) (*(int *)xyarray__entry(e->fd, x, y))
static bool system_wide = false;
@@ -100,6 +102,7 @@ struct sym_entry *sym_filter_entry = NULL;
struct sym_entry *sym_filter_entry_sched = NULL;
static int sym_pcnt_filter = 5;
static int sym_counter = 0;
+static struct perf_evsel *sym_evsel = NULL;
static int display_weighted = -1;
static const char *cpu_list;
@@ -353,7 +356,7 @@ static void show_details(struct sym_entry *syme)
return;
symbol = sym_entry__symbol(syme);
- printf("Showing %s for %s\n", event_name(sym_counter), symbol->name);
+ printf("Showing %s for %s\n", event_name(sym_evsel), symbol->name);
printf(" Events Pcnt (>=%d%%)\n", sym_pcnt_filter);
pthread_mutex_lock(&syme->src->lock);
@@ -460,7 +463,8 @@ static void rb_insert_active_sym(struct rb_root *tree, struct sym_entry *se)
static void print_sym_table(void)
{
int printed = 0, j;
- int counter, snap = !display_weighted ? sym_counter : 0;
+ struct perf_evsel *counter;
+ int snap = !display_weighted ? sym_counter : 0;
float samples_per_sec = samples/delay_secs;
float ksamples_per_sec = kernel_samples/delay_secs;
float us_samples_per_sec = (us_samples)/delay_secs;
@@ -532,7 +536,9 @@ static void print_sym_table(void)
}
if (nr_counters == 1 || !display_weighted) {
- printf("%Ld", (u64)attrs[0].sample_period);
+ struct perf_evsel *first;
+ first = list_entry(evsel_list.next, struct perf_evsel, node);
+ printf("%Ld", first->attr.sample_period);
if (freq)
printf("Hz ");
else
@@ -540,9 +546,9 @@ static void print_sym_table(void)
}
if (!display_weighted)
- printf("%s", event_name(sym_counter));
- else for (counter = 0; counter < nr_counters; counter++) {
- if (counter)
+ printf("%s", event_name(sym_evsel));
+ else list_for_each_entry(counter, &evsel_list, node) {
+ if (counter->idx)
printf("/");
printf("%s", event_name(counter));
@@ -739,7 +745,7 @@ static void print_mapped_keys(void)
fprintf(stdout, "\t[e] display entries (lines). \t(%d)\n", print_entries);
if (nr_counters > 1)
- fprintf(stdout, "\t[E] active event counter. \t(%s)\n", event_name(sym_counter));
+ fprintf(stdout, "\t[E] active event counter. \t(%s)\n", event_name(sym_evsel));
fprintf(stdout, "\t[f] profile display filter (count). \t(%d)\n", count_filter);
@@ -826,19 +832,23 @@ static void handle_keypress(struct perf_session *session, int c)
break;
case 'E':
if (nr_counters > 1) {
- int i;
-
fprintf(stderr, "\nAvailable events:");
- for (i = 0; i < nr_counters; i++)
- fprintf(stderr, "\n\t%d %s", i, event_name(i));
+
+ list_for_each_entry(sym_evsel, &evsel_list, node)
+ fprintf(stderr, "\n\t%d %s", sym_evsel->idx, event_name(sym_evsel));
prompt_integer(&sym_counter, "Enter details event counter");
if (sym_counter >= nr_counters) {
- fprintf(stderr, "Sorry, no such event, using %s.\n", event_name(0));
+ sym_evsel = list_entry(evsel_list.next, struct perf_evsel, node);
sym_counter = 0;
+ fprintf(stderr, "Sorry, no such event, using %s.\n", event_name(sym_evsel));
sleep(1);
+ break;
}
+ list_for_each_entry(sym_evsel, &evsel_list, node)
+ if (sym_evsel->idx == sym_counter)
+ break;
} else sym_counter = 0;
break;
case 'f':
@@ -978,7 +988,8 @@ static int symbol_filter(struct map *map, struct symbol *sym)
static void event__process_sample(const event_t *self,
struct sample_data *sample,
- struct perf_session *session, int counter)
+ struct perf_session *session,
+ struct perf_evsel *evsel)
{
u64 ip = self->ip.ip;
struct sym_entry *syme;
@@ -1071,9 +1082,9 @@ static void event__process_sample(const event_t *self,
syme = symbol__priv(al.sym);
if (!syme->skip) {
- syme->count[counter]++;
+ syme->count[evsel->idx]++;
syme->origin = origin;
- record_precise_ip(syme, counter, ip);
+ record_precise_ip(syme, evsel->idx, ip);
pthread_mutex_lock(&active_symbols_lock);
if (list_empty(&syme->node) || !syme->node.next)
__list_insert_active_sym(syme);
@@ -1082,12 +1093,24 @@ static void event__process_sample(const event_t *self,
}
struct mmap_data {
- int counter;
void *base;
int mask;
unsigned int prev;
};
+static int perf_evsel__alloc_mmap_per_thread(struct perf_evsel *evsel,
+ int ncpus, int nthreads)
+{
+ evsel->priv = xyarray__new(ncpus, nthreads, sizeof(struct mmap_data));
+ return evsel->priv != NULL ? 0 : -ENOMEM;
+}
+
+static void perf_evsel__free_mmap(struct perf_evsel *evsel)
+{
+ xyarray__delete(evsel->priv);
+ evsel->priv = NULL;
+}
+
static unsigned int mmap_read_head(struct mmap_data *md)
{
struct perf_event_mmap_page *pc = md->base;
@@ -1100,8 +1123,11 @@ static unsigned int mmap_read_head(struct mmap_data *md)
}
static void perf_session__mmap_read_counter(struct perf_session *self,
- struct mmap_data *md)
+ struct perf_evsel *evsel,
+ int cpu, int thread_idx)
{
+ struct xyarray *mmap_array = evsel->priv;
+ struct mmap_data *md = xyarray__entry(mmap_array, cpu, thread_idx);
unsigned int head = mmap_read_head(md);
unsigned int old = md->prev;
unsigned char *data = md->base + page_size;
@@ -1155,7 +1181,7 @@ static void perf_session__mmap_read_counter(struct perf_session *self,
event__parse_sample(event, self, &sample);
if (event->header.type == PERF_RECORD_SAMPLE)
- event__process_sample(event, &sample, self, md->counter);
+ event__process_sample(event, &sample, self, evsel);
else
event__process(event, &sample, self);
old += size;
@@ -1165,28 +1191,31 @@ static void perf_session__mmap_read_counter(struct perf_session *self,
}
static struct pollfd *event_array;
-static struct mmap_data *mmap_array[MAX_NR_CPUS][MAX_COUNTERS];
static void perf_session__mmap_read(struct perf_session *self)
{
- int i, counter, thread_index;
+ struct perf_evsel *counter;
+ int i, thread_index;
for (i = 0; i < nr_cpus; i++) {
- for (counter = 0; counter < nr_counters; counter++)
+ list_for_each_entry(counter, &evsel_list, node) {
for (thread_index = 0;
thread_index < thread_num;
thread_index++) {
perf_session__mmap_read_counter(self,
- &mmap_array[i][counter][thread_index]);
+ counter, i, thread_index);
}
+ }
}
}
int nr_poll;
int group_fd;
-static void start_counter(int i, int counter)
+static void start_counter(int i, struct perf_evsel *evsel)
{
+ struct xyarray *mmap_array = evsel->priv;
+ struct mmap_data *mm;
struct perf_event_attr *attr;
int cpu = -1;
int thread_index;
@@ -1194,7 +1223,7 @@ static void start_counter(int i, int counter)
if (target_tid == -1)
cpu = cpumap[i];
- attr = attrs + counter;
+ attr = &evsel->attr;
attr->sample_type = PERF_SAMPLE_IP | PERF_SAMPLE_TID;
@@ -1209,10 +1238,10 @@ static void start_counter(int i, int counter)
for (thread_index = 0; thread_index < thread_num; thread_index++) {
try_again:
- fd[i][counter][thread_index] = sys_perf_event_open(attr,
+ FD(evsel, i, thread_index) = sys_perf_event_open(attr,
all_tids[thread_index], cpu, group_fd, 0);
- if (fd[i][counter][thread_index] < 0) {
+ if (FD(evsel, i, thread_index) < 0) {
int err = errno;
if (err == EPERM || err == EACCES)
@@ -1236,29 +1265,29 @@ try_again:
}
printf("\n");
error("sys_perf_event_open() syscall returned with %d (%s). /bin/dmesg may provide additional information.\n",
- fd[i][counter][thread_index], strerror(err));
+ FD(evsel, i, thread_index), strerror(err));
die("No CONFIG_PERF_EVENTS=y kernel support configured?\n");
exit(-1);
}
- assert(fd[i][counter][thread_index] >= 0);
- fcntl(fd[i][counter][thread_index], F_SETFL, O_NONBLOCK);
+ assert(FD(evsel, i, thread_index) >= 0);
+ fcntl(FD(evsel, i, thread_index), F_SETFL, O_NONBLOCK);
/*
* First counter acts as the group leader:
*/
if (group && group_fd == -1)
- group_fd = fd[i][counter][thread_index];
+ group_fd = FD(evsel, i, thread_index);
- event_array[nr_poll].fd = fd[i][counter][thread_index];
+ event_array[nr_poll].fd = FD(evsel, i, thread_index);
event_array[nr_poll].events = POLLIN;
nr_poll++;
- mmap_array[i][counter][thread_index].counter = counter;
- mmap_array[i][counter][thread_index].prev = 0;
- mmap_array[i][counter][thread_index].mask = mmap_pages*page_size - 1;
- mmap_array[i][counter][thread_index].base = mmap(NULL, (mmap_pages+1)*page_size,
- PROT_READ, MAP_SHARED, fd[i][counter][thread_index], 0);
- if (mmap_array[i][counter][thread_index].base == MAP_FAILED)
+ mm = xyarray__entry(mmap_array, i, thread_index);
+ mm->prev = 0;
+ mm->mask = mmap_pages*page_size - 1;
+ mm->base = mmap(NULL, (mmap_pages+1)*page_size,
+ PROT_READ, MAP_SHARED, FD(evsel, i, thread_index), 0);
+ if (mm->base == MAP_FAILED)
die("failed to mmap with %d (%s)\n", errno, strerror(errno));
}
}
@@ -1266,8 +1295,8 @@ try_again:
static int __cmd_top(void)
{
pthread_t thread;
- int i, counter;
- int ret;
+ struct perf_evsel *counter;
+ int i, ret;
/*
* FIXME: perf_session__new should allow passing a O_MMAP, so that all this
* mmap reading, etc is encapsulated in it. Use O_WRONLY for now.
@@ -1283,7 +1312,7 @@ static int __cmd_top(void)
for (i = 0; i < nr_cpus; i++) {
group_fd = -1;
- for (counter = 0; counter < nr_counters; counter++)
+ list_for_each_entry(counter, &evsel_list, node)
start_counter(i, counter);
}
@@ -1372,8 +1401,8 @@ static const struct option options[] = {
int cmd_top(int argc, const char **argv, const char *prefix __used)
{
- int counter;
- int i,j;
+ struct perf_evsel *pos;
+ int status = -ENOMEM;
page_size = sysconf(_SC_PAGE_SIZE);
@@ -1398,15 +1427,6 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)
thread_num = 1;
}
- for (i = 0; i < MAX_NR_CPUS; i++) {
- for (j = 0; j < MAX_COUNTERS; j++) {
- fd[i][j] = malloc(sizeof(int)*thread_num);
- mmap_array[i][j] = zalloc(
- sizeof(struct mmap_data)*thread_num);
- if (!fd[i][j] || !mmap_array[i][j])
- return -ENOMEM;
- }
- }
event_array = malloc(
sizeof(struct pollfd)*MAX_NR_CPUS*MAX_COUNTERS*thread_num);
if (!event_array)
@@ -1419,15 +1439,10 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)
cpu_list = NULL;
}
- if (!nr_counters)
- nr_counters = 1;
-
- symbol_conf.priv_size = (sizeof(struct sym_entry) +
- (nr_counters + 1) * sizeof(unsigned long));
-
- symbol_conf.try_vmlinux_path = (symbol_conf.vmlinux_name == NULL);
- if (symbol__init() < 0)
- return -1;
+ if (!nr_counters && perf_evsel_list__create_default() < 0) {
+ pr_err("Not enough memory for event selector list\n");
+ return -ENOMEM;
+ }
if (delay_secs < 1)
delay_secs = 1;
@@ -1444,16 +1459,6 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)
exit(EXIT_FAILURE);
}
- /*
- * Fill in the ones not specifically initialized via -c:
- */
- for (counter = 0; counter < nr_counters; counter++) {
- if (attrs[counter].sample_period)
- continue;
-
- attrs[counter].sample_period = default_interval;
- }
-
if (target_tid != -1)
nr_cpus = 1;
else
@@ -1462,11 +1467,38 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)
if (nr_cpus < 1)
usage_with_options(top_usage, options);
+ list_for_each_entry(pos, &evsel_list, node) {
+ if (perf_evsel__alloc_mmap_per_thread(pos, nr_cpus, thread_num) < 0 ||
+ perf_evsel__alloc_fd(pos, nr_cpus, thread_num) < 0)
+ goto out_free_fd;
+ /*
+ * Fill in the ones not specifically initialized via -c:
+ */
+ if (pos->attr.sample_period)
+ continue;
+
+ pos->attr.sample_period = default_interval;
+ }
+
+ symbol_conf.priv_size = (sizeof(struct sym_entry) +
+ (nr_counters + 1) * sizeof(unsigned long));
+
+ symbol_conf.try_vmlinux_path = (symbol_conf.vmlinux_name == NULL);
+ if (symbol__init() < 0)
+ return -1;
+
get_term_dimensions(&winsize);
if (print_entries == 0) {
update_print_entries(&winsize);
signal(SIGWINCH, sig_winch_handler);
}
- return __cmd_top();
+ status = __cmd_top();
+out_free_fd:
+ list_for_each_entry(pos, &evsel_list, node) {
+ perf_evsel__free_fd(pos);
+ perf_evsel__free_mmap(pos);
+ }
+
+ return status;
}
diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
new file mode 100644
index 0000000..6539ec9
--- /dev/null
+++ b/tools/perf/util/evsel.c
@@ -0,0 +1,35 @@
+#include "evsel.h"
+#include "util.h"
+
+struct perf_evsel *perf_evsel__new(u32 type, u64 config, int idx)
+{
+ struct perf_evsel *evsel = zalloc(sizeof(*evsel));
+
+ if (evsel != NULL) {
+ evsel->idx = idx;
+ evsel->attr.type = type;
+ evsel->attr.config = config;
+ INIT_LIST_HEAD(&evsel->node);
+ }
+
+ return evsel;
+}
+
+int perf_evsel__alloc_fd(struct perf_evsel *evsel, int ncpus, int nthreads)
+{
+ evsel->fd = xyarray__new(ncpus, nthreads, sizeof(int));
+ return evsel->fd != NULL ? 0 : -ENOMEM;
+}
+
+void perf_evsel__free_fd(struct perf_evsel *evsel)
+{
+ xyarray__delete(evsel->fd);
+ evsel->fd = NULL;
+}
+
+void perf_evsel__delete(struct perf_evsel *evsel)
+{
+ assert(list_empty(&evsel->node));
+ xyarray__delete(evsel->fd);
+ free(evsel);
+}
diff --git a/tools/perf/util/evsel.h b/tools/perf/util/evsel.h
new file mode 100644
index 0000000..3eb3989
--- /dev/null
+++ b/tools/perf/util/evsel.h
@@ -0,0 +1,24 @@
+#ifndef __PERF_EVSEL_H
+#define __PERF_EVSEL_H 1
+
+#include <linux/list.h>
+#include <linux/perf_event.h>
+#include "types.h"
+#include "xyarray.h"
+
+struct perf_evsel {
+ struct list_head node;
+ struct perf_event_attr attr;
+ char *filter;
+ struct xyarray *fd;
+ int idx;
+ void *priv;
+};
+
+struct perf_evsel *perf_evsel__new(u32 type, u64 config, int idx);
+void perf_evsel__delete(struct perf_evsel *evsel);
+
+int perf_evsel__alloc_fd(struct perf_evsel *evsel, int ncpus, int nthreads);
+void perf_evsel__free_fd(struct perf_evsel *evsel);
+
+#endif /* __PERF_EVSEL_H */
--git a/tools/perf/util/header.c b/tools/perf/util/header.c
index 16a1602..ecb5a84 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -461,7 +461,7 @@ static int perf_header__adds_write(struct perf_header *self, int fd)
/* Write trace info */
trace_sec->offset = lseek(fd, 0, SEEK_CUR);
- read_tracing_data(fd, attrs, nr_counters);
+ read_tracing_data(fd, &evsel_list);
trace_sec->size = lseek(fd, 0, SEEK_CUR) - trace_sec->offset;
}
@@ -1131,8 +1131,7 @@ int event__process_event_type(event_t *self,
return 0;
}
-int event__synthesize_tracing_data(int fd, struct perf_event_attr *pattrs,
- int nb_events,
+int event__synthesize_tracing_data(int fd, struct list_head *pattrs,
event__handler_t process,
struct perf_session *session __unused)
{
@@ -1143,7 +1142,7 @@ int event__synthesize_tracing_data(int fd, struct perf_event_attr *pattrs,
memset(&ev, 0, sizeof(ev));
ev.tracing_data.header.type = PERF_RECORD_HEADER_TRACING_DATA;
- size = read_tracing_data_size(fd, pattrs, nb_events);
+ size = read_tracing_data_size(fd, pattrs);
if (size <= 0)
return size;
aligned_size = ALIGN(size, sizeof(u64));
@@ -1153,7 +1152,7 @@ int event__synthesize_tracing_data(int fd, struct perf_event_attr *pattrs,
process(&ev, NULL, session);
- err = read_tracing_data(fd, pattrs, nb_events);
+ err = read_tracing_data(fd, pattrs);
write_padded(fd, NULL, 0, padding);
return aligned_size;
--git a/tools/perf/util/header.h b/tools/perf/util/header.h
index 6335965..33f16be 100644
--- a/tools/perf/util/header.h
+++ b/tools/perf/util/header.h
@@ -113,8 +113,7 @@ int event__synthesize_event_types(event__handler_t process,
int event__process_event_type(event_t *self,
struct perf_session *session);
-int event__synthesize_tracing_data(int fd, struct perf_event_attr *pattrs,
- int nb_events,
+int event__synthesize_tracing_data(int fd, struct list_head *pattrs,
event__handler_t process,
struct perf_session *session);
int event__process_tracing_data(event_t *self,
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index c305305..2d948ad 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -1,6 +1,7 @@
#include "../../../include/linux/hw_breakpoint.h"
#include "util.h"
#include "../perf.h"
+#include "evsel.h"
#include "parse-options.h"
#include "parse-events.h"
#include "exec_cmd.h"
@@ -12,8 +13,7 @@
int nr_counters;
-struct perf_event_attr attrs[MAX_COUNTERS];
-char *filters[MAX_COUNTERS];
+LIST_HEAD(evsel_list);
struct event_symbol {
u8 type;
@@ -266,10 +266,10 @@ static char *event_cache_name(u8 cache_type, u8 cache_op, u8 cache_result)
return name;
}
-const char *event_name(int counter)
+const char *event_name(struct perf_evsel *evsel)
{
- u64 config = attrs[counter].config;
- int type = attrs[counter].type;
+ u64 config = evsel->attr.config;
+ int type = evsel->attr.type;
return __event_name(type, config);
}
@@ -814,9 +814,6 @@ int parse_events(const struct option *opt __used, const char *str, int unset __u
return -1;
for (;;) {
- if (nr_counters == MAX_COUNTERS)
- return -1;
-
memset(&attr, 0, sizeof(attr));
ret = parse_event_symbols(&str, &attr);
if (ret == EVT_FAILED)
@@ -826,8 +823,13 @@ int parse_events(const struct option *opt __used, const char *str, int unset __u
return -1;
if (ret != EVT_HANDLED_ALL) {
- attrs[nr_counters] = attr;
- nr_counters++;
+ struct perf_evsel *evsel;
+ evsel = perf_evsel__new(attr.type, attr.config,
+ nr_counters);
+ if (evsel == NULL)
+ return -1;
+ list_add_tail(&evsel->node, &evsel_list);
+ ++nr_counters;
}
if (*str == 0)
@@ -844,21 +846,22 @@ int parse_events(const struct option *opt __used, const char *str, int unset __u
int parse_filter(const struct option *opt __used, const char *str,
int unset __used)
{
- int i = nr_counters - 1;
- int len = strlen(str);
+ struct perf_evsel *last = NULL;
- if (i < 0 || attrs[i].type != PERF_TYPE_TRACEPOINT) {
+ if (!list_empty(&evsel_list))
+ last = list_entry(evsel_list.prev, struct perf_evsel, node);
+
+ if (last == NULL || last->attr.type != PERF_TYPE_TRACEPOINT) {
fprintf(stderr,
"-F option should follow a -e tracepoint option\n");
return -1;
}
- filters[i] = malloc(len + 1);
- if (!filters[i]) {
+ last->filter = strdup(str);
+ if (last->filter == NULL) {
fprintf(stderr, "not enough memory to hold filter string\n");
return -1;
}
- strcpy(filters[i], str);
return 0;
}
@@ -967,3 +970,15 @@ void print_events(void)
exit(129);
}
+
+int perf_evsel_list__create_default(void)
+{
+ struct perf_evsel *evsel = perf_evsel__new(PERF_TYPE_HARDWARE,
+ PERF_COUNT_HW_CPU_CYCLES, 0);
+ if (evsel == NULL)
+ return -ENOMEM;
+
+ list_add(&evsel->node, &evsel_list);
+ ++nr_counters;
+ return 0;
+}
diff --git a/tools/perf/util/parse-events.h b/tools/perf/util/parse-events.h
index fc4ab3f..0f915a0 100644
--- a/tools/perf/util/parse-events.h
+++ b/tools/perf/util/parse-events.h
@@ -4,6 +4,15 @@
* Parse symbolic events/counts passed in as options:
*/
+#include <linux/perf_event.h>
+
+struct list_head;
+struct perf_evsel;
+
+extern struct list_head evsel_list;
+
+int perf_evsel_list__create_default(void);
+
struct option;
struct tracepoint_path {
@@ -13,14 +22,11 @@ struct tracepoint_path {
};
extern struct tracepoint_path *tracepoint_id_to_path(u64 config);
-extern bool have_tracepoints(struct perf_event_attr *pattrs, int nb_events);
+extern bool have_tracepoints(struct list_head *evsel_list);
extern int nr_counters;
-extern struct perf_event_attr attrs[MAX_COUNTERS];
-extern char *filters[MAX_COUNTERS];
-
-extern const char *event_name(int ctr);
+const char *event_name(struct perf_evsel *event);
extern const char *__event_name(int type, u64 config);
extern int parse_events(const struct option *opt, const char *str, int unset);
@@ -33,5 +39,4 @@ extern void print_events(void);
extern char debugfs_path[];
extern int valid_debugfs_mount(const char *debugfs);
-
#endif /* __PERF_PARSE_EVENTS_H */
diff --git a/tools/perf/util/trace-event-info.c b/tools/perf/util/trace-event-info.c
index b157260..35729f4 100644
--- a/tools/perf/util/trace-event-info.c
+++ b/tools/perf/util/trace-event-info.c
@@ -34,11 +34,13 @@
#include <ctype.h>
#include <errno.h>
#include <stdbool.h>
+#include <linux/list.h>
#include <linux/kernel.h>
#include "../perf.h"
#include "trace-event.h"
#include "debugfs.h"
+#include "evsel.h"
#define VERSION "0.5"
@@ -469,16 +471,17 @@ out:
}
static struct tracepoint_path *
-get_tracepoints_path(struct perf_event_attr *pattrs, int nb_events)
+get_tracepoints_path(struct list_head *pattrs)
{
struct tracepoint_path path, *ppath = &path;
- int i, nr_tracepoints = 0;
+ struct perf_evsel *pos;
+ int nr_tracepoints = 0;
- for (i = 0; i < nb_events; i++) {
- if (pattrs[i].type != PERF_TYPE_TRACEPOINT)
+ list_for_each_entry(pos, pattrs, node) {
+ if (pos->attr.type != PERF_TYPE_TRACEPOINT)
continue;
++nr_tracepoints;
- ppath->next = tracepoint_id_to_path(pattrs[i].config);
+ ppath->next = tracepoint_id_to_path(pos->attr.config);
if (!ppath->next)
die("%s\n", "No memory to alloc tracepoints list");
ppath = ppath->next;
@@ -487,21 +490,21 @@ get_tracepoints_path(struct perf_event_attr *pattrs, int nb_events)
return nr_tracepoints > 0 ? path.next : NULL;
}
-bool have_tracepoints(struct perf_event_attr *pattrs, int nb_events)
+bool have_tracepoints(struct list_head *pattrs)
{
- int i;
+ struct perf_evsel *pos;
- for (i = 0; i < nb_events; i++)
- if (pattrs[i].type == PERF_TYPE_TRACEPOINT)
+ list_for_each_entry(pos, pattrs, node)
+ if (pos->attr.type == PERF_TYPE_TRACEPOINT)
return true;
return false;
}
-int read_tracing_data(int fd, struct perf_event_attr *pattrs, int nb_events)
+int read_tracing_data(int fd, struct list_head *pattrs)
{
char buf[BUFSIZ];
- struct tracepoint_path *tps = get_tracepoints_path(pattrs, nb_events);
+ struct tracepoint_path *tps = get_tracepoints_path(pattrs);
/*
* What? No tracepoints? No sense writing anything here, bail out.
@@ -545,14 +548,13 @@ int read_tracing_data(int fd, struct perf_event_attr *pattrs, int nb_events)
return 0;
}
-ssize_t read_tracing_data_size(int fd, struct perf_event_attr *pattrs,
- int nb_events)
+ssize_t read_tracing_data_size(int fd, struct list_head *pattrs)
{
ssize_t size;
int err = 0;
calc_data_size = 1;
- err = read_tracing_data(fd, pattrs, nb_events);
+ err = read_tracing_data(fd, pattrs);
size = calc_data_size - 1;
calc_data_size = 0;
diff --git a/tools/perf/util/trace-event.h b/tools/perf/util/trace-event.h
index b3e86b1..b5f12ca 100644
--- a/tools/perf/util/trace-event.h
+++ b/tools/perf/util/trace-event.h
@@ -262,9 +262,8 @@ raw_field_value(struct event *event, const char *name, void *data);
void *raw_field_ptr(struct event *event, const char *name, void *data);
unsigned long long eval_flag(const char *flag);
-int read_tracing_data(int fd, struct perf_event_attr *pattrs, int nb_events);
-ssize_t read_tracing_data_size(int fd, struct perf_event_attr *pattrs,
- int nb_events);
+int read_tracing_data(int fd, struct list_head *pattrs);
+ssize_t read_tracing_data_size(int fd, struct list_head *pattrs);
/* taken from kernel/trace/trace.h */
enum trace_flag_type {
diff --git a/tools/perf/util/xyarray.c b/tools/perf/util/xyarray.c
new file mode 100644
index 0000000..22afbf6
--- /dev/null
+++ b/tools/perf/util/xyarray.c
@@ -0,0 +1,20 @@
+#include "xyarray.h"
+#include "util.h"
+
+struct xyarray *xyarray__new(int xlen, int ylen, size_t entry_size)
+{
+ size_t row_size = ylen * entry_size;
+ struct xyarray *xy = zalloc(sizeof(*xy) + xlen * row_size);
+
+ if (xy != NULL) {
+ xy->entry_size = entry_size;
+ xy->row_size = row_size;
+ }
+
+ return xy;
+}
+
+void xyarray__delete(struct xyarray *xy)
+{
+ free(xy);
+}
diff --git a/tools/perf/util/xyarray.h b/tools/perf/util/xyarray.h
new file mode 100644
index 0000000..c488a07
--- /dev/null
+++ b/tools/perf/util/xyarray.h
@@ -0,0 +1,20 @@
+#ifndef _PERF_XYARRAY_H_
+#define _PERF_XYARRAY_H_ 1
+
+#include <sys/types.h>
+
+struct xyarray {
+ size_t row_size;
+ size_t entry_size;
+ char contents[];
+};
+
+struct xyarray *xyarray__new(int xlen, int ylen, size_t entry_size);
+void xyarray__delete(struct xyarray *xy);
+
+static inline void *xyarray__entry(struct xyarray *xy, int x, int y)
+{
+ return &xy->contents[x * xy->row_size + y * xy->entry_size];
+}
+
+#endif /* _PERF_XYARRAY_H_ */
next prev parent reply other threads:[~2011-01-04 8:22 UTC|newest]
Thread overview: 1149+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-07-24 8:09 [patch] perf tools: allow top users to switch between weighted and individual counter display Mike Galbraith
2009-07-24 8:58 ` Peter Zijlstra
2009-07-24 10:37 ` Mike Galbraith
2009-08-02 20:00 ` Ingo Molnar
2009-08-03 5:09 ` Mike Galbraith
2009-08-04 8:21 ` Mike Galbraith
2009-08-04 8:24 ` [patch] perf tools: update perf top man page Mike Galbraith
[not found] ` <new-submission>
2009-03-18 9:18 ` [tip:tracing/tasks] tracing: stop command line recording when tracing is disabled Thomas Gleixner
2009-03-18 9:18 ` [tip:tracing/tasks] tracing: replace the crude (unsigned) -1 hackery Thomas Gleixner
2009-03-18 9:18 ` [tip:tracing/tasks] tracing: fix trace_find_cmdline() Thomas Gleixner
2009-03-18 9:18 ` [tip:tracing/tasks] tracing: fix command line to pid reverse map Carsten Emde
2009-03-29 22:24 ` [tip:x86/mm] x86/mm: further cleanups of fault.c's include file section Ingo Molnar
2009-03-30 12:06 ` Ingo Molnar
2009-04-01 10:15 ` [tip:perfcounters/core] perf_counter tools: kerneltop: add real-time data acquisition thread Mike Galbraith
2009-05-04 17:33 ` [tip:perfcounters/core] perf_counter: round-robin per-CPU counters too tip-bot for Ingo Molnar
2009-05-04 17:33 ` [tip:perfcounters/core] perf_counter: initialize the per-cpu context earlier tip-bot for Ingo Molnar
2009-05-04 17:34 ` [tip:perfcounters/core] perf_counter: convert perf_resource_mutex to a spinlock tip-bot for Ingo Molnar
[not found] ` <tip-48dd0fed90e2b1f1ba87401439b85942181c6df3@git.kernel.org>
2009-05-06 14:24 ` [tip:tracing/core] tracing: trace_output.c, fix false positive compiler warning Steven Rostedt
2009-05-06 14:36 ` Ingo Molnar
2009-05-06 14:49 ` Steven Rostedt
2009-05-06 14:51 ` [tip:tracing/core] tracing: small trave_events sample Makefile cleanup tip-bot for Christoph Hellwig
2009-05-07 9:19 ` [tip:x86/cleanups] x86: clean up arch/x86/kernel/tsc_sync.c a bit tip-bot for Ingo Molnar
2009-05-11 9:53 ` [tip:x86/apic] x86: apic: Check rev 3 fadt correctly for physical_apic bit tip-bot for Yinghai Lu
2009-05-11 9:53 ` [tip:x86/cpufeature] x86: clean up and fix setup_clear/force_cpu_cap handling tip-bot for Yinghai Lu
2009-05-11 10:10 ` [tip:perfcounters/core] perf_counter, x86: clean up throttling printk tip-bot for Mike Galbraith
2009-05-12 14:33 ` [tip:core/urgent] lockdep: increase MAX_LOCKDEP_ENTRIES tip-bot for Ingo Molnar
2009-05-12 18:27 ` [tip:core/urgent] lockdep: increase MAX_LOCKDEP_ENTRIES and MAX_LOCKDEP_CHAINS tip-bot for Ingo Molnar
2009-05-13 6:21 ` [tip:perfcounters/core] perf_counter: fix print debug irq disable tip-bot for Peter Zijlstra
2009-05-13 13:52 ` [tip:x86/urgent] xen: use header for EXPORT_SYMBOL_GPL tip-bot for Randy Dunlap
2009-05-15 8:42 ` [tip:perfcounters/core] perf_counter: x86: More accurate counter update tip-bot for Peter Zijlstra
2009-05-15 8:42 ` [tip:perfcounters/core] perf_counter: x86: Fix throttling tip-bot for Ingo Molnar
2009-05-15 8:42 ` [tip:perfcounters/core] perf_counter: x86: Allow unpriviliged use of NMIs tip-bot for Peter Zijlstra
2009-05-15 8:43 ` [tip:perfcounters/core] perf_counter: Fix perf_output_copy() WARN to account for overflow tip-bot for Peter Zijlstra
2009-05-15 8:43 ` [tip:perfcounters/core] perf_counter: x86: Fix up the amd NMI/INT throttle tip-bot for Peter Zijlstra
2009-05-15 8:43 ` [tip:perfcounters/core] perf_counter: Rework the perf counter disable/enable tip-bot for Peter Zijlstra
2009-05-15 11:05 ` Paul Mackerras
2009-05-15 11:23 ` Peter Zijlstra
2009-05-15 8:43 ` [tip:perfcounters/core] perf_counter: x86: Robustify interrupt handling tip-bot for Peter Zijlstra
2009-05-15 8:43 ` [tip:perfcounters/core] perf_counter: x86: Disallow interval of 1 tip-bot for Ingo Molnar
2009-05-15 8:44 ` [tip:perfcounters/core] perf_counter: x86: Protect against infinite loops in intel_pmu_handle_irq() tip-bot for Ingo Molnar
2009-05-15 8:44 ` [tip:perfcounters/core] perf_counter: Remove ACPI quirk tip-bot for Ingo Molnar
2009-05-15 10:12 ` [tip:perfcounters/core] perf stat: handle Ctrl-C tip-bot for Ingo Molnar
2009-05-28 11:09 ` Paul Mackerras
2009-05-28 12:19 ` Peter Zijlstra
2009-05-29 9:06 ` Ingo Molnar
2009-05-18 7:40 ` [tip:perfcounters/core] perf_counter, x86: speed up the scheduling fast-path tip-bot for Ingo Molnar
2009-05-20 18:15 ` [tip:perfcounters/core] perf_counter: Fix context removal deadlock tip-bot for Ingo Molnar
2009-05-22 16:21 ` [tip:perfcounters/core] perf_counter tools: increase limits tip-bot for Ingo Molnar
2009-05-24 7:02 ` [tip:perfcounters/core] perf top: fix segfault tip-bot for Mike Galbraith
2009-05-25 3:39 ` [tip:perfcounters/core] perf_counter: Increase mmap limit tip-bot for Ingo Molnar
2009-05-25 8:03 ` [tip:perfcounters/core] perf_counter tools: increase limits, fix tip-bot for Ingo Molnar
2009-05-25 11:03 ` [tip:perfcounters/core] perf top: Reduce display overhead tip-bot for Mike Galbraith
2009-05-25 11:06 ` [tip:perfcounters/core] perf_counter: Move child perfcounter init to after scheduler init tip-bot for Ingo Molnar
2009-05-25 12:45 ` [tip:perfcounters/core] perf stat: flip around ':k' and ':u' flags tip-bot for Ingo Molnar
2009-05-26 7:57 ` [tip:perfcounters/core] perf_counter, x86: Fix APIC NMI programming tip-bot for Ingo Molnar
2009-05-26 7:57 ` [tip:perfcounters/core] perf_counter, x86: Make NMI lockups more robust tip-bot for Ingo Molnar
2009-05-26 7:57 ` [tip:perfcounters/core] perf_counter: Initialize ->oncpu properly tip-bot for Ingo Molnar
2009-05-26 10:33 ` [tip:perfcounters/core] perf record: Straighten out argv types tip-bot for Ingo Molnar
2009-05-26 10:34 ` [tip:perfcounters/core] perf stat: Remove unused variable tip-bot for Ingo Molnar
2009-05-26 10:34 ` [tip:perfcounters/core] perf record: Convert to Git option parsing tip-bot for Ingo Molnar
2009-05-26 10:34 ` [tip:perfcounters/core] perf_counter tools: Librarize event string parsing tip-bot for Ingo Molnar
2009-05-26 11:03 ` [tip:perfcounters/core] perf stat: Convert to Git option parsing tip-bot for Ingo Molnar
2009-05-26 11:36 ` [tip:perfcounters/core] perf top: " tip-bot for Ingo Molnar
2009-05-26 12:12 ` [tip:perfcounters/core] perf_counter: First part of 'perf report' conversion to C + elfutils tip-bot for Arnaldo Carvalho de Melo
2009-05-26 12:12 ` [tip:perfcounters/core] perf_counter tools: remove the standalone perf-report utility tip-bot for Ingo Molnar
2009-05-26 12:13 ` [tip:perfcounters/core] perf_counter: Implement dso__load using libelf tip-bot for Arnaldo Carvalho de Melo
2009-05-26 12:13 ` [tip:perfcounters/core] perf_counter: Use rb_trees in perf report tip-bot for Arnaldo Carvalho de Melo
2009-05-26 12:13 ` [tip:perfcounters/core] perf_counter: Add our private copy of list.h tip-bot for Arnaldo Carvalho de Melo
2009-05-26 12:13 ` [tip:perfcounters/core] perf_counter: Use rb_tree for symhists and threads in report tip-bot for Arnaldo Carvalho de Melo
2009-05-26 12:14 ` [tip:perfcounters/core] perf record: Convert to Git option parsing tip-bot for Ingo Molnar
2009-05-26 12:15 ` [tip:perfcounters/core] perf report: Add help/manpage tip-bot for Ingo Molnar
2009-05-26 13:27 ` [tip:perfcounters/core] perf top: Remove leftover NMI/IRQ bits tip-bot for Mike Galbraith
2009-05-26 13:27 ` [tip:perfcounters/core] perf top: fix typo in -d option tip-bot for Mike Galbraith
2009-05-26 14:24 ` [tip:perfcounters/core] perf report: Fix ELF symbol parsing tip-bot for Peter Zijlstra
2009-05-26 14:24 ` [tip:perfcounters/core] perf report: Fix kernel symbol resolution tip-bot for Arnaldo Carvalho de Melo
2009-05-26 15:21 ` [PATCH 1/1 tip] perf: Don't assume /proc/kallsyms is ordered Arnaldo Carvalho de Melo
2009-05-26 15:39 ` [tip:perfcounters/core] " tip-bot for Arnaldo Carvalho de Melo
2009-05-26 17:56 ` [PATCH 1/1 tip] " Peter Zijlstra
2009-05-26 17:54 ` [tip:perfcounters/core] perf report: add --dump-raw-trace option tip-bot for Ingo Molnar
2009-05-26 18:09 ` [tip:perfcounters/core] perf report: add counter for unknown events tip-bot for Ingo Molnar
2009-05-26 18:09 ` [tip:perfcounters/core] perf report: add more debugging tip-bot for Ingo Molnar
2009-05-26 18:21 ` tip-bot for Ingo Molnar
2009-05-26 19:21 ` [tip:perfcounters/core] perf report: More robust error handling tip-bot for Peter Zijlstra
2009-05-27 7:36 ` [tip:perfcounters/core] perf_counter tools: Rename output.perf to perf.data tip-bot for Ingo Molnar
2009-05-27 9:06 ` [tip:perfcounters/core] perf_counter tools: Add built-in pager support tip-bot for Ingo Molnar
2009-05-27 10:33 ` [tip:perfcounters/core] perf record: Fix the profiling of existing pid or whole box tip-bot for Mike Galbraith
2009-05-27 11:24 ` [tip:perfcounters/core] perf report: Remove <ctype.h> include tip-bot for Ingo Molnar
2009-05-27 13:03 ` [tip:perfcounters/core] perf_counter: tools: /usr/lib/debug%s.debug support tip-bot for Peter Zijlstra
2009-05-27 21:25 ` [tip:perfcounters/core] pref_counter: tools: report: Robustify in case of weird events tip-bot for Ingo Molnar
2009-05-28 9:46 ` [tip:perfcounters/core] perf_counter: Fix perf_counter_init_task() on !CONFIG_PERF_COUNTERS tip-bot for Ingo Molnar
2009-05-28 10:00 ` [tip:perfcounters/core] perf_counter tools: report: Implement header output for --sort variants tip-bot for Peter Zijlstra
2009-05-28 10:00 ` [tip:perfcounters/core] perf_counter tools: report: Add help text for --sort tip-bot for Ingo Molnar
2009-05-28 22:03 ` [tip:perfcounters/core] perf_counter tools: Document '--' option parsing terminator tip-bot for Mike Galbraith
2009-05-29 7:06 ` [tip:perfcounters/core] perf_counter tools: Fix top symbol table dump typo tip-bot for Mike Galbraith
2009-05-29 7:07 ` [tip:perfcounters/core] perf_counter tools: Fix top symbol table max_ip typo tip-bot for Mike Galbraith
2009-05-29 9:00 ` [tip:perfcounters/core] perf_counter tools: Clean up builtin-stat.c's do_perfstat() tip-bot for Ingo Molnar
2009-05-29 9:00 ` [tip:perfcounters/core] perf_counter tools: Split display into reading and printing tip-bot for Ingo Molnar
2009-05-29 9:01 ` [tip:perfcounters/core] perf_counter tools: Also display time-normalized stat results tip-bot for Ingo Molnar
2009-05-29 12:27 ` [tip:perfcounters/core] perf_counter: Fix cpuctx->task_ctx races tip-bot for Ingo Molnar
2009-05-29 12:27 ` [tip:perfcounters/core] perf_counter: Robustify counter-free logic tip-bot for Ingo Molnar
2009-05-29 17:15 ` [tip:sched/core] ftrace: fix typo about map of kernel priority in ftrace.txt file tip-bot for GeunSik Lim
2009-05-29 17:15 ` [tip:sched/core] sched: fix typo in sched-rt-group.txt file tip-bot for GeunSik Lim
2009-05-29 17:16 ` [tip:perfcounters/core] perf_counter: Fix COMM and MMAP events for cpu wide counters tip-bot for Peter Zijlstra
2009-05-30 0:15 ` GeunSik Lim
2009-05-30 0:23 ` Yinghai Lu
2009-05-30 9:40 ` Ingo Molnar
2009-05-30 11:27 ` GeunSik Lim
2009-05-29 17:16 ` [tip:perfcounters/core] perf_counter: Clean up task_ctx vs interrupts tip-bot for Peter Zijlstra
2009-05-29 17:16 ` [tip:perfcounters/core] perf_counter: Ammend cleanup in fork() fail tip-bot for Peter Zijlstra
2009-05-30 11:45 ` [tip:perfcounters/core] perf_counter tools: Print 'CPU utilization factor' in builtin-stat tip-bot for Ingo Molnar
2009-05-30 11:51 ` [tip:perfcounters/core] perf_counter tools: Fix 'make install' tip-bot for Ingo Molnar
2009-05-30 13:00 ` [tip:perfcounters/core] perf_counter tools: Generate per command manpages (and pdf/html, etc.) tip-bot for Ingo Molnar
2009-05-30 13:46 ` Sam Ravnborg
2009-05-30 14:47 ` Ingo Molnar
2009-05-30 15:37 ` Jaswinder Singh Rajput
2009-05-30 16:38 ` Sam Ravnborg
2009-05-30 17:23 ` Ingo Molnar
2009-05-31 20:16 ` [tip:perfcounters/core] perf_counter tools: Fix unknown command help text tip-bot for Ingo Molnar
2009-06-01 8:19 ` [tip:perfcounters/core] perf_counter: Tidy up style details tip-bot for Ingo Molnar
2009-06-01 17:57 ` tip-bot for Ingo Molnar
2009-06-01 18:22 ` Frans Pop
2009-06-01 18:43 ` Ingo Molnar
2009-06-01 18:42 ` [tip:perfcounters/core] perf_counter tools: Guard against record damaging existing files tip-bot for Mike Galbraith
2009-06-02 1:45 ` [tip:perfcounters/core] perf_counter tools: Add string.[ch] tip-bot for Arnaldo Carvalho de Melo
2009-06-02 8:25 ` [tip:perfcounters/core] perf_counter tools: Make .gitignore reflect perf_counter tools files tip-bot for Mike Galbraith
2009-06-02 9:03 ` [tip:perfcounters/core] perf_counter tools: Cleanup Makefile tip-bot for Mike Galbraith
2009-06-02 14:19 ` [tip:perfcounters/core] perf_counter: Use PID namespaces properly tip-bot for Peter Zijlstra
2009-06-02 15:55 ` Oleg Nesterov
2009-06-02 16:28 ` Peter Zijlstra
2009-06-02 16:30 ` Oleg Nesterov
2009-06-02 14:19 ` [tip:perfcounters/core] perf_counter: tools: Expand the COMM,MMAP event synthesizer tip-bot for Peter Zijlstra
2009-06-02 14:19 ` [tip:perfcounters/core] perf_counter: tools: Better handle existing data files tip-bot for Peter Zijlstra
2009-06-02 14:42 ` [tip:perfcounters/core] perf report: Clean up the default output tip-bot for Ingo Molnar
2009-06-02 20:15 ` [tip:perfcounters/core] perf_counter tools: Remove the last nmi bits tip-bot for Peter Zijlstra
2009-06-02 20:15 ` [tip:perfcounters/core] x86: Fix atomic_long_xchg() on 64bit tip-bot for Peter Zijlstra
2009-06-02 20:16 ` [tip:perfcounters/core] perf_counter: Add unique counter id tip-bot for Peter Zijlstra
2009-06-02 20:16 ` [tip:perfcounters/core] perf_counter: Rename various fields tip-bot for Peter Zijlstra
2009-06-02 20:16 ` [tip:perfcounters/core] perf_counter: Remove the last nmi/irq bits tip-bot for Peter Zijlstra
2009-06-02 20:16 ` [tip:perfcounters/core] perf_counter: x86: Emulate longer sample periods tip-bot for Peter Zijlstra
2009-06-02 20:16 ` [tip:perfcounters/core] perf_counter: Change data head from u32 to u64 tip-bot for Peter Zijlstra
2009-06-02 20:17 ` [tip:perfcounters/core] perf_counter: Add ioctl for changing the sample period/frequency tip-bot for Peter Zijlstra
2009-06-02 20:17 ` [tip:perfcounters/core] perf_counter: Rename perf_counter_hw_event => perf_counter_attr tip-bot for Peter Zijlstra
2009-06-02 20:17 ` [tip:perfcounters/core] perf_counter tools: Fix up the ABI shakeup tip-bot for Peter Zijlstra
2009-06-02 20:17 ` [tip:perfcounters/core] perf report: Separate out idle threads tip-bot for Peter Zijlstra
2009-06-02 20:17 ` [tip:perfcounters/core] perf report: Fix column width/alignment of dsos tip-bot for Ingo Molnar
2009-06-02 22:07 ` [tip:perfcounters/core] perf record: Add --append option tip-bot for Ingo Molnar
2009-06-02 22:32 ` [tip:perfcounters/core] perf record: Increase mmap buffering default tip-bot for Ingo Molnar
2009-06-02 22:32 ` [tip:perfcounters/core] perf report: Print more info instead of <unknown> entries tip-bot for Ingo Molnar
2009-06-02 22:42 ` [tip:perfcounters/core] perf_counter tools: Make source code headers more coherent tip-bot for Ingo Molnar
2009-06-02 22:49 ` [tip:perfcounters/core] perf record: Print out the number of events captured tip-bot for Ingo Molnar
2009-06-03 8:46 ` [tip:perfcounters/core] perf_counter tools: Cover PLT symbols too tip-bot for Arnaldo Carvalho de Melo
2009-06-03 8:46 ` [tip:perfcounters/core] perf report: Print -D to stdout tip-bot for Ingo Molnar
2009-06-03 9:48 ` tip-bot for Ingo Molnar
2009-06-03 9:48 ` [tip:perfcounters/core] perf report: Improve sort key recognition tip-bot for Ingo Molnar
2009-06-03 9:48 ` [tip:perfcounters/core] perf report: Handle vDSO symbols properly tip-bot for Ingo Molnar
2009-06-03 13:06 ` [tip:perfcounters/core] perf_counter: Add a comm hook for pure fork()s tip-bot for Peter Zijlstra
2009-06-03 13:06 ` [tip:perfcounters/core] perf record: Use long arg for counter period tip-bot for Peter Zijlstra
2009-06-03 13:06 ` [tip:perfcounters/core] perf report: Fix comm sorting tip-bot for Peter Zijlstra
2009-06-03 13:07 ` [tip:perfcounters/core] perf_counter: Fix race in counter initialization tip-bot for Peter Zijlstra
2009-06-03 18:24 ` [tip:perfcounters/core] perf_counter tools: Clean up old kerneltop references tip-bot for Ingo Molnar
2009-06-03 18:33 ` [tip:perfcounters/core] perf record: Refine capture printout tip-bot for Ingo Molnar
2009-06-03 18:42 ` [tip:perfcounters/core] perf report: Display 100% correctly tip-bot for Ingo Molnar
2009-06-03 18:42 ` [tip:perfcounters/core] perf stat: Print out all arguments tip-bot for Ingo Molnar
2009-06-03 19:15 ` [tip:perfcounters/core] perf report: Add front-entry cache for lookups tip-bot for Ingo Molnar
2009-06-03 19:15 ` [tip:perfcounters/core] perf help: Fix bug when there's no perf-* command around tip-bot for Ingo Molnar
2009-06-03 19:21 ` [tip:perfcounters/core] perf_counter tools: Optimize harder tip-bot for Ingo Molnar
2009-06-03 21:42 ` [tip:perfcounters/core] perf_counter: Fix throttling lock-up tip-bot for Ingo Molnar
2009-06-03 22:35 ` [tip:perfcounters/core] perf report: Clean up event processing tip-bot for Ingo Molnar
2009-06-03 22:35 ` [tip:perfcounters/core] perf report: Split out event processing helpers tip-bot for Ingo Molnar
2009-06-03 22:35 ` [tip:perfcounters/core] perf report: Handle all known event types tip-bot for Ingo Molnar
2009-06-04 7:33 ` [tip:perfcounters/core] perf report: Fix rbtree bug tip-bot for Arnaldo Carvalho de Melo
2009-06-04 8:06 ` [tip:perfcounters/core] perf top: Reduce default filter threshold tip-bot for Ingo Molnar
2009-06-04 12:48 ` [tip:perfcounters/core] perf record/report: Fix PID/COMM handling tip-bot for Ingo Molnar
2009-06-04 13:09 ` [tip:perfcounters/core] perf_counter tools: Build with native optimization tip-bot for Ingo Molnar
2009-06-05 1:03 ` Paul Mackerras
2009-06-05 18:42 ` Ingo Molnar
2009-06-04 13:09 ` [tip:perfcounters/core] perf report: Simplify symbol output tip-bot for Peter Zijlstra
2009-06-04 13:21 ` [tip:perfcounters/core] perf_counter tools: Print out symbol parsing errors only if --verbose tip-bot for Ingo Molnar
2009-06-04 13:27 ` [tip:perfcounters/core] perf report: Print out the total number of events tip-bot for Ingo Molnar
2009-06-04 13:30 ` [tip:perfcounters/core] perf report: Add consistent spacing rules tip-bot for Peter Zijlstra
2009-06-04 14:09 ` tip-bot for Peter Zijlstra
2009-06-04 14:33 ` [tip:perfcounters/core] perf_counter tools: Add color terminal output support tip-bot for Ingo Molnar
2009-06-04 14:51 ` [tip:perfcounters/core] perf_counter tools: Dont output in color on !tty tip-bot for Ingo Molnar
2009-06-04 15:30 ` [tip:perfcounters/core] perf report: Bail out if there are unrecognized options/arguments tip-bot for Ingo Molnar
2009-06-04 15:39 ` [tip:perfcounters/core] perf stat: Update help text tip-bot for Ingo Molnar
2009-06-04 16:00 ` [tip:perfcounters/core] perf_counter: Add fork event tip-bot for Peter Zijlstra
2009-06-04 16:00 ` [tip:perfcounters/core] perf_counter: Remove munmap stuff tip-bot for Peter Zijlstra
2009-06-04 16:01 ` [tip:perfcounters/core] perf_counter tools: Use fork and remove munmap events tip-bot for Peter Zijlstra
2009-06-05 12:45 ` [tip:perfcounters/core] perf record: Split out counter creation into a helper function tip-bot for Ingo Molnar
2009-06-05 12:45 ` [tip:perfcounters/core] perf record, top: Implement --freq tip-bot for Ingo Molnar
2009-06-05 13:21 ` [tip:perfcounters/core] x86: Set context.vdso before installing the mapping tip-bot for Peter Zijlstra
2009-06-05 13:21 ` [tip:perfcounters/core] perf_counter: Generate mmap events for install_special_mapping() tip-bot for Peter Zijlstra
2009-06-05 13:21 ` [tip:perfcounters/core] perf report: Deal with maps tip-bot for Peter Zijlstra
2009-06-05 13:57 ` Arnaldo Carvalho de Melo
2009-06-05 14:06 ` Peter Zijlstra
2009-06-05 15:02 ` Arnaldo Carvalho de Melo
2009-06-05 13:22 ` [tip:perfcounters/core] perf report: Display user/kernel differentiator tip-bot for Ingo Molnar
2009-06-05 13:33 ` [tip:perfcounters/core] perf record/top: Clarify events/samples naming tip-bot for Ingo Molnar
2009-06-05 13:42 ` [tip:perfcounters/core] perf_counter tools: " tip-bot for Ingo Molnar
2009-06-05 16:01 ` [tip:perfcounters/core] perf_counter tools: Remove -march=native tip-bot for Ingo Molnar
2009-06-05 16:57 ` [tip:perfcounters/core] perf_counter: Change PERF_SAMPLE_CONFIG into PERF_SAMPLE_ID tip-bot for Peter Zijlstra
2009-06-05 16:57 ` [tip:perfcounters/core] perf_counter: Add PERF_SAMPLE_PERIOD tip-bot for Peter Zijlstra
2009-06-05 16:57 ` [tip:perfcounters/core] perf_counter: Fix frequency adjustment for < HZ tip-bot for Peter Zijlstra
2009-06-05 17:12 ` [tip:perfcounters/core] perf_counter tools: Sample and display frequency adjustment changes tip-bot for Ingo Molnar
2009-06-05 18:46 ` [tip:perfcounters/core] perf record: Set frequency correctly tip-bot for Ingo Molnar
2009-06-06 9:46 ` [tip:perfcounters/core] perf_counter: Separate out attr->type from attr->config tip-bot for Ingo Molnar
2009-06-06 11:16 ` [tip:perfcounters/core] perf_counter: Implement generalized cache event types tip-bot for Ingo Molnar
2009-06-09 8:15 ` Peter Zijlstra
2009-06-09 12:15 ` Ingo Molnar
2009-06-06 13:22 ` [tip:perfcounters/core] perf_counter tools: Fix cache-event printout tip-bot for Ingo Molnar
2009-06-06 13:27 ` [tip:perfcounters/core] perf_counter tools: Add help for perf list tip-bot for Thomas Gleixner
2009-06-06 13:48 ` [tip:perfcounters/core] perf_counter tools: Uniform help printouts tip-bot for Ingo Molnar
2009-06-06 14:21 ` [tip:perfcounters/core] perf_counter tools: Tidy up manpage details tip-bot for Ingo Molnar
2009-06-06 18:03 ` [tip:perfcounters/core] perf_counter tools: Prepare for 'perf annotate' tip-bot for Ingo Molnar
2009-06-06 18:03 ` [tip:perfcounters/core] perf_counter tools: Add 'perf annotate' feature tip-bot for Ingo Molnar
2009-06-06 18:10 ` Frederic Weisbecker
2009-06-06 18:48 ` [tip:perfcounters/core] perf_counter tools: Move from Documentation/perf_counter/ to tools/perf/ tip-bot for Ingo Molnar
2009-06-06 18:48 ` [tip:perfcounters/core] perf_counter tools: Warning fixes on 32-bit tip-bot for Arjan van de Ven
2009-06-06 19:21 ` [tip:perfcounters/core] perf annotate: Automatically pick up vmlinux in the local directory tip-bot for Ingo Molnar
2009-06-06 19:24 ` [tip:perfcounters/core] perf_counter tools: Initialize a stack variable before use tip-bot for Arjan van de Ven
2009-06-06 19:27 ` [tip:perfcounters/core] perf annotate: Fix command line help text tip-bot for Ingo Molnar
2009-06-07 15:12 ` [tip:perfcounters/core] perf stat: Continue even on counter creation error tip-bot for Ingo Molnar
2009-06-07 15:36 ` [tip:perfcounters/core] perf top: Fall back to cpu-clock-tick hrtimer sampling if no cycle counter available tip-bot for Ingo Molnar
2009-06-07 15:42 ` [tip:perfcounters/core] perf record: Fall back to cpu-clock-ticks if no PMU tip-bot for Ingo Molnar
2009-06-07 15:51 ` [tip:perfcounters/core] perf_counter tools: Handle kernels with !CONFIG_PERF_COUNTER tip-bot for Ingo Molnar
2009-06-07 16:00 ` [tip:perfcounters/core] perf report: Print more expressive message in case of file open error tip-bot for Ingo Molnar
2009-06-07 17:21 ` [tip:perfcounters/core] perf stat: Print out instructins/cycle metric tip-bot for Ingo Molnar
2009-06-08 10:31 ` [tip:perfcounters/core] perf_counter, x86: Implement generalized cache event types, add Core2 support tip-bot for Thomas Gleixner
2009-06-08 10:31 ` [tip:perfcounters/core] perf_counter, x86: Implement generalized cache event types, add Atom support tip-bot for Thomas Gleixner
2009-06-08 10:31 ` [tip:perfcounters/core] perf_counter: Clean up x86 boot messages tip-bot for Ingo Molnar
2009-06-08 20:36 ` [tip:perfcounters/core] perf_counter, x86: Implement generalized cache event types, add AMD support tip-bot for Thomas Gleixner
2009-06-09 8:43 ` Peter Zijlstra
2009-06-09 12:01 ` Ingo Molnar
2009-06-08 21:33 ` tip-bot for Thomas Gleixner
2009-06-08 21:33 ` [tip:perfcounters/core] perf_counter tools: Standardize color printing tip-bot for Ingo Molnar
2009-06-10 9:51 ` [tip:core/locking] spinlock: Add missing __raw_spin_lock_flags() stub for UP tip-bot for Benjamin Herrenschmidt
2009-06-10 15:42 ` [tip:perfcounters/core] perf_counter: More aggressive frequency adjustment tip-bot for Peter Zijlstra
2009-06-10 15:42 ` [tip:perfcounters/core] perf_counter tools: Small frequency related fixes tip-bot for Peter Zijlstra
2009-06-10 15:42 ` [tip:perfcounters/core] perf_counter tools: Propagate signals properly tip-bot for Peter Zijlstra
2009-06-11 0:42 ` [tip:perfcounters/core] perf_counter: Annotate exit ctx recursion tip-bot for Peter Zijlstra
2009-06-11 0:43 ` [tip:perfcounters/core] perf_counter tools: Normalize data using per sample period data tip-bot for Peter Zijlstra
2009-06-11 0:43 ` [tip:perfcounters/core] perf_counter: Introduce struct for sample data tip-bot for Peter Zijlstra
2009-06-11 0:43 ` [tip:perfcounters/core] perf_counter: Accurate period data tip-bot for Peter Zijlstra
2009-06-12 12:42 ` [tip:core/urgent] lockdep: Select frame pointers on x86 tip-bot for Peter Zijlstra
2009-06-12 12:42 ` [tip:perfcounters/core] perf_counter: PERF_TYPE_HW_CACHE is a hardware counter too tip-bot for Peter Zijlstra
2009-06-12 12:42 ` [tip:perfcounters/core] perf_counter: Remove PERF_TYPE_RAW special casing tip-bot for Peter Zijlstra
2009-06-12 12:43 ` [tip:perfcounters/core] perf record: Explicity program a default counter tip-bot for Peter Zijlstra
2009-06-12 12:43 ` [tip:perfcounters/core] perf_counter: Add forward/backward attribute ABI compatibility tip-bot for Peter Zijlstra
2009-06-13 14:49 ` [tip:perfcounters/core] perf_counter: Fix stack corruption in perf_read_hw tip-bot for Marti Raudsepp
2009-06-13 14:49 ` [tip:perfcounters/core] perf stat: Reorganize output tip-bot for Ingo Molnar
2009-06-13 14:49 ` [tip:perfcounters/core] perf stat: Add feature to run and measure a command multiple times tip-bot for Ingo Molnar
2009-06-13 14:50 ` [tip:perfcounters/core] perf stat: Enable raw data to be printed tip-bot for Ingo Molnar
2009-06-13 18:36 ` [tip:core/urgent] lockdep: Select frame pointers on x86 tip-bot for Peter Zijlstra
2009-06-14 13:54 ` [tip:perfcounters/core] perf report: Print out raw events in hexa tip-bot for Ingo Molnar
2009-06-14 14:12 ` [tip:perfcounters/core] perf record/report: Add call graph / call chain profiling tip-bot for Ingo Molnar
2009-06-14 18:36 ` tip-bot for Ingo Molnar
2009-06-15 7:14 ` Yong Wang
2009-06-16 2:57 ` Frederic Weisbecker
2009-06-16 8:09 ` Ingo Molnar
2009-06-17 7:37 ` Peter Zijlstra
2009-06-17 12:24 ` Ingo Molnar
2009-06-17 11:41 ` Frederic Weisbecker
2009-06-17 7:29 ` Peter Zijlstra
2009-06-14 20:39 ` [tip:perfcounters/core] perf_counter, x86: Fix call-chain walking tip-bot for Ingo Molnar
2009-06-15 7:24 ` [tip:perfcounters/core] perf record: Fix fast task-exit race tip-bot for Ingo Molnar
2009-06-15 8:03 ` [tip:perfcounters/core] perf_counter, x86: Fix kernel-space call-chains tip-bot for Ingo Molnar
2009-06-15 8:33 ` tip-bot for Ingo Molnar
2009-06-15 8:33 ` [tip:perfcounters/core] perf record: Fix fast task-exit race tip-bot for Ingo Molnar
2009-06-15 14:07 ` [tip:perfcounters/core] x86, mm: Add __get_user_pages_fast() tip-bot for Peter Zijlstra
2009-06-15 14:07 ` [tip:perfcounters/core] perf_counter: x86: Fix call-chain support to use NMI-safe methods tip-bot for Peter Zijlstra
2009-06-15 16:14 ` Mathieu Desnoyers
2009-06-15 17:05 ` Ingo Molnar
2009-06-15 17:42 ` Mathieu Desnoyers
2009-06-15 18:18 ` Ingo Molnar
2009-06-15 17:11 ` Linus Torvalds
2009-06-15 17:18 ` Ingo Molnar
2009-06-15 17:37 ` Linus Torvalds
2009-06-15 18:05 ` Mathieu Desnoyers
2009-06-15 18:23 ` Ingo Molnar
2009-06-15 18:28 ` Ingo Molnar
2009-06-15 18:42 ` Mathieu Desnoyers
2009-06-15 18:47 ` Ingo Molnar
2009-06-15 18:51 ` Linus Torvalds
2009-06-15 19:16 ` Mathieu Desnoyers
2009-06-15 18:38 ` Mathieu Desnoyers
2009-06-15 18:50 ` Ingo Molnar
2009-06-15 18:39 ` H. Peter Anvin
2009-06-15 18:45 ` Ingo Molnar
2009-06-15 18:55 ` H. Peter Anvin
2009-06-15 19:02 ` Avi Kivity
2009-06-16 8:36 ` Ingo Molnar
2009-06-16 8:52 ` Avi Kivity
2009-06-16 10:50 ` Ingo Molnar
2009-06-15 18:30 ` Linus Torvalds
2009-06-15 18:36 ` Ingo Molnar
2009-06-15 18:46 ` Mathieu Desnoyers
2009-06-15 19:04 ` Linus Torvalds
2009-06-15 19:39 ` Mathieu Desnoyers
2009-06-15 19:43 ` Ingo Molnar
2009-06-15 19:51 ` Mathieu Desnoyers
2009-06-15 19:55 ` Ingo Molnar
2009-06-15 20:25 ` Ingo Molnar
2009-06-15 20:04 ` Linus Torvalds
2009-06-15 20:30 ` Ingo Molnar
2009-06-15 20:06 ` Mathieu Desnoyers
2009-06-15 20:10 ` H. Peter Anvin
2009-06-15 20:47 ` Ingo Molnar
2009-06-15 21:02 ` Mathieu Desnoyers
2009-06-15 21:12 ` Ingo Molnar
2009-06-15 21:22 ` Mathieu Desnoyers
2009-06-15 23:22 ` Linus Torvalds
2009-06-19 15:20 ` Ingo Molnar
2009-06-19 15:51 ` Mathieu Desnoyers
2009-06-19 16:16 ` Ingo Molnar
2009-06-16 8:42 ` Ingo Molnar
2009-06-16 15:21 ` H. Peter Anvin
2009-06-15 20:14 ` Jeremy Fitzhardinge
2009-06-15 20:27 ` Linus Torvalds
2009-06-15 20:42 ` H. Peter Anvin
2009-06-15 20:59 ` Ingo Molnar
2009-06-15 21:04 ` H. Peter Anvin
2009-06-15 21:13 ` Ingo Molnar
2009-06-15 22:39 ` Linus Torvalds
2009-06-15 21:06 ` Jeremy Fitzhardinge
2009-06-15 18:08 ` Ingo Molnar
2009-06-15 18:38 ` H. Peter Anvin
2009-06-15 18:48 ` Mathieu Desnoyers
2009-06-15 18:51 ` Peter Zijlstra
2009-06-15 18:59 ` Mathieu Desnoyers
2009-06-15 19:02 ` Peter Zijlstra
2009-06-15 19:11 ` H. Peter Anvin
2009-06-15 19:27 ` Mathieu Desnoyers
2009-06-15 19:32 ` H. Peter Anvin
2009-06-15 21:01 ` Ingo Molnar
2009-06-15 21:12 ` Mathieu Desnoyers
2009-06-15 21:16 ` Ingo Molnar
2009-06-15 21:34 ` Mathieu Desnoyers
2009-06-15 21:38 ` H. Peter Anvin
2009-06-15 21:54 ` Mathieu Desnoyers
2009-06-15 22:21 ` H. Peter Anvin
2009-06-15 22:30 ` Mathieu Desnoyers
2009-06-15 22:36 ` H. Peter Anvin
2009-06-15 22:49 ` Mathieu Desnoyers
2009-06-16 1:28 ` H. Peter Anvin
2009-06-16 3:05 ` Mathieu Desnoyers
2009-06-16 8:33 ` Ingo Molnar
2009-06-16 14:19 ` Mathieu Desnoyers
2009-06-16 15:22 ` H. Peter Anvin
2009-06-16 19:06 ` Mathieu Desnoyers
2009-06-16 20:26 ` H. Peter Anvin
2009-06-16 21:13 ` Mathieu Desnoyers
2009-06-16 22:37 ` H. Peter Anvin
2009-06-16 8:36 ` [tip:x86/urgent] x86: mm: Read cr2 before prefetching the mmap_lock tip-bot for Ingo Molnar
2009-06-16 17:54 ` Linus Torvalds
2009-06-15 19:16 ` [tip:perfcounters/core] perf_counter: x86: Fix call-chain support to use NMI-safe methods Avi Kivity
2009-06-15 19:18 ` H. Peter Anvin
2009-06-15 19:03 ` Ingo Molnar
2009-06-15 19:07 ` Ingo Molnar
2009-06-15 19:10 ` Peter Zijlstra
2009-06-15 19:21 ` Avi Kivity
2009-06-15 20:18 ` Jeremy Fitzhardinge
2009-06-15 19:59 ` Ingo Molnar
2009-06-15 14:07 ` [tip:perfcounters/core] perf report: Add per system call overhead histogram tip-bot for Ingo Molnar
2009-06-15 14:21 ` [tip:perfcounters/core] perf report: Fix 32-bit printf format tip-bot for Ingo Molnar
2009-06-16 19:54 ` [tip:sched/urgent] sched, x86: Fix cpufreq + sched_clock() TSC scaling tip-bot for Peter Zijlstra
2009-06-17 11:51 ` [tip:core/urgent] lockdep: Select frame pointers on x86 tip-bot for Peter Zijlstra
2009-06-17 14:06 ` [tip:sched/urgent] sched, x86: Fix cpufreq + sched_clock() TSC scaling tip-bot for Peter Zijlstra
2009-06-17 17:27 ` [tip:perfcounters/core] perf report: Add --sort <call> --call <$regex> tip-bot for Peter Zijlstra
2009-06-17 17:27 ` [tip:perfcounters/core] perf_counter: x86: Set the period in the intel overflow handler tip-bot for Peter Zijlstra
2009-06-17 17:27 ` [tip:perfcounters/core] perf_counter tools: Replace isprint() with issane() tip-bot for Peter Zijlstra
2009-06-18 6:09 ` [tip:perfcounters/core] perf report: Tidy up the --collapse call-chain feature tip-bot for Ingo Molnar
2009-06-18 6:27 ` [tip:perfcounters/core] perf report: Tidy up the "--parent <regex>" and "--sort parent" call-chain features tip-bot for Ingo Molnar
2009-06-18 7:21 ` [tip:perfcounters/core] perf report: Add validation of call-chain entries tip-bot for Ingo Molnar
2009-06-18 7:45 ` [tip:perfcounters/core] perf_counter tools: Add and use isprint() tip-bot for Peter Zijlstra
2009-06-18 7:48 ` tip-bot for Peter Zijlstra
2009-06-18 12:50 ` [tip:perfcounters/core] fs: Provide empty .set_page_dirty() aop for anon inodes tip-bot for Peter Zijlstra
2009-06-18 12:50 ` [tip:perfcounters/core] perf_counter: Add event overlow handling tip-bot for Peter Zijlstra
2009-06-18 12:50 ` [tip:perfcounters/core] perf_counter tools: Handle lost events tip-bot for Peter Zijlstra
2009-06-18 21:17 ` Corey Ashford
2009-06-18 13:39 ` [tip:perfcounters/core] perf report: Filter to parent set by default tip-bot for Ingo Molnar
2009-06-19 11:51 ` [tip:perfcounters/core] perf_counter: Make callchain samples extensible tip-bot for Peter Zijlstra
2009-06-19 11:52 ` [tip:perfcounters/core] perf_counter: Update userspace callchain sampling uses tip-bot for Peter Zijlstra
2009-06-19 11:52 ` [tip:perfcounters/core] perf_counter tools: Add a data file header tip-bot for Peter Zijlstra
2009-06-19 11:52 ` [tip:perfcounters/core] perf_counter: Simplify and fix task migration counting tip-bot for Peter Zijlstra
2009-06-19 11:59 ` Peter Zijlstra
2009-06-19 12:24 ` Paul Mackerras
2009-06-19 12:39 ` Peter Zijlstra
2009-06-19 12:26 ` Peter Zijlstra
2009-06-19 16:27 ` [tip:perfcounters/core] perf_counter: Close race in perf_lock_task_context() tip-bot for Peter Zijlstra
2009-06-20 11:27 ` [tip:perfcounters/core] perf_counter: Push perf_sample_data through the swcounter code tip-bot for Peter Zijlstra
2009-06-21 8:15 ` [tip:core/urgent] lockdep: Select frame pointers on x86 tip-bot for Peter Zijlstra
2009-06-21 13:09 ` [tip:perfcounters/urgent] perf_counter tools: Fix vmlinux fallback when running on a different kernel tip-bot for Ingo Molnar
2009-06-22 15:00 ` [tip:perfcounters/urgent] perf report: Output more symbol related debug data tip-bot for Peter Zijlstra
2009-06-22 15:03 ` tip-bot for Peter Zijlstra
2009-06-23 10:03 ` [tip:perfcounters/urgent] perf_counter tools: Handle overlapping MMAP events tip-bot for Peter Zijlstra
2009-06-23 10:03 ` [tip:perfcounters/urgent] perf_counter: Optimize perf_swcounter_event() tip-bot for Peter Zijlstra
2009-06-23 10:03 ` [tip:perfcounters/urgent] perf_counter: Push inherit into perf_counter_alloc() tip-bot for Peter Zijlstra
2009-06-23 10:04 ` [tip:perfcounters/urgent] perf_counter: Optimize perf_counter_alloc()'s inherit case tip-bot for Peter Zijlstra
2009-06-23 14:42 ` [tip:perfcounters/urgent] perf report: Fix help text typo tip-bot for Ingo Molnar
2009-06-25 19:42 ` [tip:perfcounters/urgent] perf_counter tools: Rework the file format tip-bot for Peter Zijlstra
2009-06-25 19:42 ` [tip:perfcounters/urgent] perf_counter: Split the mmap control page in two parts tip-bot for Peter Zijlstra
2009-06-25 19:42 ` [tip:perfcounters/urgent] perf_counter: Add scale information to the mmap control page tip-bot for Peter Zijlstra
2009-06-25 19:43 ` [tip:perfcounters/urgent] perf_counter, x86: Add mmap counter read support tip-bot for Peter Zijlstra
2009-06-25 19:43 ` [tip:perfcounters/urgent] perf_counter: Add PERF_EVENT_READ tip-bot for Peter Zijlstra
2009-06-25 19:43 ` [tip:perfcounters/urgent] perf_counter: Implement more accurate per task statistics tip-bot for Peter Zijlstra
2009-06-26 11:10 ` [RFC][PATCH] perf_counter: Complete counter swap Peter Zijlstra
2009-06-26 12:44 ` Paul Mackerras
2009-06-26 15:52 ` [tip:perfcounters/urgent] " tip-bot for Peter Zijlstra
2009-06-25 19:43 ` [tip:perfcounters/urgent] perf_counter: Rework the sample ABI tip-bot for Peter Zijlstra
2009-06-25 19:43 ` [tip:perfcounters/urgent] perf-report: Add modes for inherited stats and no-samples tip-bot for Peter Zijlstra
2009-06-25 19:44 ` [tip:perfcounters/urgent] perf-report: Add bare minimum PERF_EVENT_READ parsing tip-bot for Peter Zijlstra
2009-06-27 4:31 ` [tip:perfcounters/urgent] perf_counter tools: Remove dead code tip-bot for Ingo Molnar
2009-06-27 4:31 ` [tip:perfcounters/urgent] perf stat: Add -n/--null option to run without counters tip-bot for Ingo Molnar
2009-06-27 7:56 ` Jaswinder Singh Rajput
2009-06-27 16:52 ` Ingo Molnar
2009-06-27 4:31 ` [tip:perfcounters/urgent] perf stat: Fix multi-run stats tip-bot for Ingo Molnar
2009-06-27 4:36 ` tip-bot for Ingo Molnar
2009-06-27 8:26 ` Jaswinder Singh Rajput
2009-06-27 16:45 ` Ingo Molnar
2009-06-29 19:54 ` [tip:perfcounters/urgent] perf stat: Use percentages for scaling output tip-bot for Ingo Molnar
2009-07-01 10:55 ` [tip:perfcounters/urgent] perf_counter tools: Add more warnings and fix/annotate them tip-bot for Ingo Molnar
2009-07-03 6:27 ` [tip:perfcounters/urgent] perf_counter tools: Adjust symbols in ET_EXEC files too tip-bot for Arnaldo Carvalho de Melo
2009-07-07 12:07 ` [tip:timers/core] timekeeping: Move ktime_get() functions to timekeeping.c tip-bot for Thomas Gleixner
2009-07-09 12:04 ` [tip:timers/urgent] hrtimer: migration: always subtract base->offset tip-bot for Thomas Gleixner
2009-07-09 12:04 ` [tip:timers/urgent] hrtimer: migration: do not check expiry time on current CPU tip-bot for Thomas Gleixner
2009-07-10 10:40 ` [tip:perfcounters/core] perf_counter: Fix up P6 PMU details tip-bot for Peter Zijlstra
2009-07-10 10:40 ` [tip:perfcounters/core] perf_counter: Clean up global vs counter enable tip-bot for Peter Zijlstra
2009-07-10 10:40 ` [tip:perfcounters/core] perf_counter: Stop open coding unclone_ctx tip-bot for Peter Zijlstra
2009-07-11 9:57 ` [tip:x86/cleanups] x86/cpu: Clean up various files a bit tip-bot for Alan Cox
2009-07-11 11:00 ` Jaswinder Singh Rajput
2009-07-11 11:09 ` Jaswinder Singh Rajput
2009-07-11 14:10 ` Alan Cox
2009-07-13 6:49 ` [tip:perfcounters/core] perf_counter, x86: Extend perf_counter Pentium M support tip-bot for Daniel Qarras
2009-07-18 9:49 ` [tip:sched/urgent] sched: Account for vruntime wrapping tip-bot for Fabio Checconi
2009-07-21 12:36 ` [tip:irq/urgent] genirq: Delegate irq affinity setting to the irq thread tip-bot for Thomas Gleixner
2009-07-22 15:15 ` [tip:timers/core] hrtimer: Remove cb_entry from struct hrtimer tip-bot for Peter Zijlstra
2009-07-24 6:46 ` [tip:x86/urgent] x86: geode: Mark mfgpt irq IRQF_TIMER to prevent resume failure tip-bot for Thomas Gleixner
2009-08-01 11:22 ` [tip:perfcounters/urgent] perf_counter tools: Fix link errors with older toolchains tip-bot for Ingo Molnar
2009-08-02 13:03 ` [tip:core/locking] lockdep: Fix BFS build tip-bot for Ingo Molnar
2009-08-02 13:09 ` [tip:core/debug] debug lockups: Improve lockup detection tip-bot for Ingo Molnar
2009-08-02 17:18 ` Paul E. McKenney
2009-08-02 18:45 ` Andrew Morton
2009-08-02 19:26 ` Ingo Molnar
2009-08-02 19:39 ` Andrew Morton
2009-08-02 20:41 ` Ingo Molnar
2009-08-02 21:08 ` Andrew Morton
2009-08-03 7:59 ` Ingo Molnar
2009-08-03 8:12 ` [tip:core/debug] debug lockups: Improve lockup detection, fix generic arch fallback tip-bot for Ingo Molnar
2009-08-02 20:46 ` [tip:core/debug] debug lockups: Improve lockup detection Ingo Molnar
2009-08-02 13:10 ` [tip:perfcounters/core] perf_counter: Collapse inherit on read() tip-bot for Peter Zijlstra
2009-08-02 13:13 ` [tip:sched/core] sched: Add debug check to task_of() tip-bot for Peter Zijlstra
2009-08-02 18:36 ` [tip:core/rcu] rcu: Fix RCU & CPU hotplug hang tip-bot for Paul E. McKenney
2009-08-02 19:40 ` [tip:core/rcu] rcu: Add diagnostic check for a possible CPU-hotplug race tip-bot for Paul E. McKenney
2009-08-02 20:27 ` Ingo Molnar
2009-08-02 22:13 ` Paul E. McKenney
2009-08-03 5:15 ` Paul E. McKenney
2009-08-03 7:04 ` Ingo Molnar
2009-08-03 12:56 ` Paul E. McKenney
2009-08-06 1:26 ` Paul E. McKenney
2009-08-06 2:51 ` Gautham R Shenoy
2009-08-06 12:29 ` Ingo Molnar
2009-08-06 13:59 ` Paul E. McKenney
2009-08-08 14:57 ` [tip:core/rcu] rcu: Add second " tip-bot for Paul E. McKenney
2009-08-08 15:01 ` Ingo Molnar
2009-08-08 23:21 ` Paul E. McKenney
2009-08-09 10:54 ` tip-bot for Paul E. McKenney
2009-08-09 11:00 ` Ingo Molnar
2009-08-09 11:10 ` Ingo Molnar
2009-08-09 18:30 ` Paul E. McKenney
2009-08-09 19:23 ` Paul E. McKenney
2009-08-04 8:18 ` [tip:core/rcu] rcu: Add " Gautham R Shenoy
2009-08-04 8:20 ` Ingo Molnar
2009-08-04 11:01 ` Ingo Molnar
2009-08-04 15:37 ` Paul E. McKenney
2009-08-04 5:47 ` Gautham R Shenoy
2009-08-03 13:22 ` [tip:sched/core] sched: Add wait, sleep and iowait accounting tracepoints tip-bot for Peter Zijlstra
2009-08-03 13:24 ` Ingo Molnar
2009-08-03 14:24 ` Peter Zijlstra
2009-08-04 11:37 ` [tip:perfcounters/core] perf top: Update man page tip-bot for Mike Galbraith
2009-08-04 11:37 ` [tip:perfcounters/urgent] perf_counter tools: Provide default bfd_demangle() function in case it's not around tip-bot for Ingo Molnar
2009-08-04 16:21 ` tip-bot for Ingo Molnar
2009-08-06 12:57 ` [tip:perfcounters/urgent] perf symbol: Fix symbol parsing in certain cases: use the build-id as a symlink tip-bot for Arnaldo Carvalho de Melo
2009-08-06 18:27 ` tip-bot for Arnaldo Carvalho de Melo
2009-08-11 11:33 ` [tip:perfcounters/urgent] perf_counter, x86: Fix lapic printk message tip-bot for Ingo Molnar
2009-08-11 11:34 ` [tip:perfcounters/urgent] perf_counter, x86: Fix generic cache events on P6-mobile CPUs tip-bot for Ingo Molnar
2009-08-11 11:34 ` [tip:perfcounters/urgent] perf_counter, x86: Fix/improve apic fallback tip-bot for Ingo Molnar
2009-08-11 16:23 ` Johannes Stezenbach
2009-08-11 16:52 ` Ingo Molnar
2009-08-12 12:18 ` tip-bot for Ingo Molnar
2009-08-12 15:51 ` [tip:irq/urgent] genirq: Prevent race between free_irq() and handle_IRQ_event() tip-bot for Thomas Gleixner
2009-08-13 8:39 ` [tip:perfcounters/core] perf_counter: Provide hw_perf_counter_setup_online() APIs tip-bot for Ingo Molnar
2009-08-13 22:05 ` [tip:tracing/core] tracing: Fix syscall tracing on !HAVE_FTRACE_SYSCALLS architectures tip-bot for Ingo Molnar
2009-08-16 8:57 ` [tip:perfcounters/core] perf: Enable more compiler warnings tip-bot for Ingo Molnar
2009-08-16 12:46 ` Frederic Weisbecker
2009-08-16 14:01 ` Ingo Molnar
2009-08-16 14:06 ` Frederic Weisbecker
2009-08-16 15:22 ` Ingo Molnar
2009-08-16 12:53 ` [PATCH] perf tools: Revert the -Wswitch-enum flag Frederic Weisbecker
2009-08-16 14:15 ` [tip:perfcounters/core] perf: Enable more compiler warnings Frederic Weisbecker
2009-08-16 15:18 ` Ingo Molnar
2009-08-16 15:52 ` [PATCH] perf tools: Substract -Wformat-nonliteral from Wformat=2 in extra flags Frederic Weisbecker
2009-08-16 16:00 ` [tip:perfcounters/core] " tip-bot for Frederic Weisbecker
2009-08-16 9:18 ` [tip:perfcounters/core] perf: Build with stack-protector and with -D_FORTIFY_SOURCE=2 tip-bot for Ingo Molnar
2009-08-17 8:46 ` [tip:perfcounters/urgent] perf: Rename perf-examples.txt to examples.txt tip-bot for Carlos R. Mafra
2009-08-18 9:15 ` [tip:perfcounters/core] perf tools: Remove obsolete defines tip-bot for Ingo Molnar
2009-08-18 9:39 ` [tip:perfcounters/urgent] perf_counter: Fix the PARISC build tip-bot for Ingo Molnar
2009-08-18 12:06 ` [tip:perfcounters/urgent] perf annotate: Fix segmentation fault tip-bot for Ingo Molnar
2009-08-21 11:07 ` [tip:tracing/urgent] tracing: Fix too large stack usage in do_one_initcall() tip-bot for Ingo Molnar
2009-08-21 11:14 ` Ingo Molnar
2009-08-21 11:37 ` Peter Zijlstra
2009-08-21 11:58 ` Ingo Molnar
2009-08-21 17:48 ` Andrew Morton
2009-08-21 18:13 ` Linus Torvalds
2009-08-21 18:30 ` Steven Rostedt
2009-08-21 19:02 ` Ingo Molnar
2009-08-21 19:13 ` Linus Torvalds
2009-08-21 19:19 ` Linus Torvalds
2009-08-21 19:17 ` Ingo Molnar
2009-08-21 19:37 ` Steven Rostedt
2009-08-21 16:05 ` Linus Torvalds
2009-08-21 16:22 ` Ingo Molnar
2009-08-21 18:33 ` Arjan van de Ven
2009-08-21 19:18 ` [tip:timers/core] x86: Do not unregister PIT clocksource on PIT oneshot setup/shutdown tip-bot for Thomas Gleixner
2009-08-22 10:35 ` Ingo Molnar
2009-08-22 21:14 ` Martin Schwidefsky
2009-08-27 14:43 ` [tip:sched/clock] init: Move sched_clock_init after late_time_init tip-bot for Thomas Gleixner
2009-08-28 11:51 ` [tip:perfcounters/urgent] perf_counters: Increase paranoia level tip-bot for Ingo Molnar
2009-08-28 18:34 ` [tip:timers/core] clocksource: Resolve cpu hotplug dead lock with TSC unstable tip-bot for Thomas Gleixner
2009-08-31 8:19 ` Martin Schwidefsky
2009-08-31 14:38 ` Ingo Molnar
2009-08-31 15:59 ` Thomas Gleixner
2009-09-03 18:17 ` [boot crash] " Ingo Molnar
2009-09-03 18:21 ` Ingo Molnar
2009-09-03 18:58 ` Ingo Molnar
2009-09-08 21:43 ` john stultz
2009-09-02 6:25 ` [tip:sched/core] sched: Add wait, sleep and iowait accounting tracepoints tip-bot for Peter Zijlstra
2009-09-02 7:01 ` tip-bot for Peter Zijlstra
2009-09-02 7:15 ` tip-bot for Peter Zijlstra
2009-09-02 13:00 ` [tip:perfcounters/core] perf tools: Clean up warnings list in the Makefile tip-bot for Ingo Molnar
2009-09-02 13:00 ` [tip:perfcounters/core] perf tools: Work around strict aliasing related warnings tip-bot for Ingo Molnar
2009-09-02 19:31 ` [tip:perfcounters/core] perf trace: Sample the CPU too tip-bot for Ingo Molnar
2009-09-02 21:44 ` Frederic Weisbecker
2009-09-02 21:54 ` Ingo Molnar
2009-09-03 1:52 ` Frederic Weisbecker
2009-09-02 19:51 ` [tip:perfcounters/core] perf_counter: Introduce new (non-)paranoia level to allow raw tracepoint access tip-bot for Ingo Molnar
2009-09-03 1:11 ` Li Zefan
2009-09-03 6:47 ` Ingo Molnar
2009-09-03 6:46 ` tip-bot for Ingo Molnar
2009-09-03 11:09 ` [tip:perfcounters/core] perf trace: Sample timestamps as well tip-bot for Ingo Molnar
2009-09-03 13:48 ` tip-bot for Ingo Molnar
2009-09-03 14:27 ` [tip:perfcounters/core] perf trace: Fix parsing of perf.data tip-bot for Ingo Molnar
2009-09-03 14:27 ` [tip:perfcounters/core] perf tools: Seek to the end of the header area tip-bot for Ingo Molnar
2009-09-03 14:28 ` [tip:perfcounters/core] perf trace: Print out in nanoseconds tip-bot for Ingo Molnar
2009-09-03 14:28 ` [tip:perfcounters/core] perf trace: Fix read_string() tip-bot for Ingo Molnar
2009-09-03 16:55 ` [tip:perfcounters/core] perf_counter: Fix output-sharing error path tip-bot for Ingo Molnar
2009-09-04 10:25 ` [tip:sched/balancing] sched: Clean up topology.h tip-bot for Ingo Molnar
2009-09-04 10:25 ` [tip:sched/balancing] sched: Turn on SD_BALANCE_NEWIDLE tip-bot for Ingo Molnar
2009-09-04 10:25 ` [tip:sched/balancing] sched: Turn on SD_WAKE_IDLE for 'close' domains tip-bot for Ingo Molnar
2009-09-04 15:42 ` [tip:perfcounters/core] perf stat: Change noise calculation to use stddev tip-bot for Peter Zijlstra
2009-09-04 15:43 ` [tip:perfcounters/core] perf stat: Remove the limit on repeat tip-bot for Peter Zijlstra
2009-09-04 15:43 ` [tip:perfcounters/core] perf stat: Use stddev_mean in stead of stddev tip-bot for Peter Zijlstra
2009-09-04 15:43 ` [tip:perfcounters/core] perf stat: More advanced variance computation tip-bot for Peter Zijlstra
2009-09-04 18:34 ` [tip:perfcounters/core] perf stat: Clean up statistics calculations a bit more tip-bot for Peter Zijlstra
2009-09-07 20:37 ` [tip:sched/balancing] sched: Remove short cut from select_task_rq_fair() tip-bot for Peter Zijlstra
2009-09-07 20:37 ` [tip:sched/balancing] sched: Deal with low-load in wake_affine() tip-bot for Peter Zijlstra
2009-09-07 20:37 ` [tip:sched/balancing] sched: enable SD_WAKE_IDLE tip-bot for Peter Zijlstra
2009-09-08 11:19 ` [tip:sched/core] sched: Ensure that a child can't gain time over it's parent after fork() tip-bot for Mike Galbraith
2009-09-08 11:49 ` Ingo Molnar
2009-09-08 11:53 ` Jens Axboe
2009-09-08 12:42 ` Mike Galbraith
2009-09-14 20:04 ` [tip:timers/core] clocksource: clocksource_select must be called with mutex locked tip-bot for Thomas Gleixner
2009-09-14 20:04 ` [tip:timers/core] clocksource: Delay clocksource down rating to late boot tip-bot for Thomas Gleixner
2009-09-15 8:22 ` [tip:timers/core] time: Prevent 32 bit overflow with set_normalized_timespec() tip-bot for Thomas Gleixner
2009-09-15 9:30 ` [tip:perfcounters/core] perf: Add 'perf sched' tool tip-bot for Ingo Molnar
2009-09-15 9:30 ` [tip:perfcounters/core] perf sched: Import schedbench.c tip-bot for Ingo Molnar
2009-09-15 9:31 ` [tip:perfcounters/core] perf sched: Implement the scheduling workload replay engine tip-bot for Ingo Molnar
2009-09-15 9:31 ` [tip:perfcounters/core] perf sched: Tighten up the code tip-bot for Ingo Molnar
2009-09-15 9:32 ` [tip:perfcounters/core] perf sched: Clean up latency and replay sub-commands tip-bot for Ingo Molnar
2009-09-15 9:32 ` [tip:perfcounters/core] perf sched: Display time in milliseconds, reorganize output tip-bot for Ingo Molnar
2009-09-15 9:32 ` [tip:perfcounters/core] perf sched: Add runtime stats tip-bot for Ingo Molnar
2009-09-15 9:33 ` [tip:perfcounters/core] perf sched: Output runtime and context switch totals tip-bot for Ingo Molnar
2009-09-15 9:34 ` [tip:perfcounters/core] perf sched: Add 'perf sched latency' and 'perf sched replay' tip-bot for Ingo Molnar
2009-09-15 9:34 ` [tip:perfcounters/core] perf sched: Finish latency => atom rename and misc cleanups tip-bot for Ingo Molnar
2009-09-15 9:34 ` [tip:perfcounters/core] perf sched: Clean up PID sorting logic tip-bot for Ingo Molnar
2009-09-15 9:35 ` [tip:perfcounters/core] perf_counter: Allow mmap if paranoid checks are turned off tip-bot for Ingo Molnar
2009-09-15 9:35 ` [tip:perfcounters/core] perf sched: Add 'perf sched trace', improve documentation tip-bot for Ingo Molnar
2009-09-15 9:35 ` [tip:perfcounters/core] perf_counter, sched: Add sched_stat_runtime tracepoint tip-bot for Ingo Molnar
2009-09-15 9:36 ` [tip:perfcounters/core] perf tools: Implement counter output multiplexing tip-bot for Ingo Molnar
2009-09-15 9:36 ` [tip:perfcounters/core] perf sched: Fix 'perf sched latency' output on 32-bit systems tip-bot for Ingo Molnar
2009-09-15 9:36 ` [tip:perfcounters/core] perf sched: Print PIDs too tip-bot for mingo
2009-09-15 9:36 ` [tip:perfcounters/core] perf sched: Add support for sched:sched_stat_runtime events tip-bot for mingo
2009-09-16 10:19 ` [tip:sched/core] sched: Fix double_rq_lock() compile warning tip-bot for Peter Zijlstra
2009-09-16 10:19 ` [tip:sched/core] sched: Split WAKEUP_OVERLAP tip-bot for Peter Zijlstra
2009-09-16 10:19 ` [tip:sched/core] sched: Complete buddy switches tip-bot for Mike Galbraith
2009-09-16 10:19 ` [tip:sched/core] sched: Add come comments to the sched features tip-bot for Peter Zijlstra
2009-09-16 10:19 ` [tip:sched/core] sched: Move code around tip-bot for Peter Zijlstra
2009-09-16 10:20 ` [tip:sched/core] sched: Move sched_balance_self() into sched_fair.c tip-bot for Peter Zijlstra
2009-09-16 10:20 ` [tip:sched/core] sched: Hook sched_balance_self() into sched_class::select_task_rq() tip-bot for Peter Zijlstra
2009-09-16 10:20 ` [tip:sched/core] sched: Add TASK_WAKING tip-bot for Peter Zijlstra
2009-09-16 10:20 ` [tip:sched/core] sched: Merge select_task_rq_fair() and sched_balance_self() tip-bot for Peter Zijlstra
2009-09-16 10:21 ` [tip:sched/core] sched: Weaken SD_POWERSAVINGS_BALANCE tip-bot for Peter Zijlstra
2009-09-16 10:21 ` [tip:sched/core] sched: for_each_domain() vs RCU tip-bot for Peter Zijlstra
2009-09-16 10:21 ` [tip:sched/core] sched: Fix task affinity for select_task_rq_fair tip-bot for Peter Zijlstra
2009-09-16 10:21 ` [tip:sched/core] sched: Tweak wake_idx tip-bot for Peter Zijlstra
2009-09-16 10:21 ` [tip:sched/core] sched: Fix some domain tunings tip-bot for Peter Zijlstra
2009-09-16 10:22 ` [tip:sched/core] sched: Reduce forkexec_idx tip-bot for Peter Zijlstra
2009-09-16 10:22 ` [tip:sched/core] sched: Provide arch_scale_freq_power tip-bot for Peter Zijlstra
2009-09-16 10:22 ` [tip:sched/core] x86: Move APERF/MPERF into a X86_FEATURE tip-bot for Peter Zijlstra
2009-09-16 10:23 ` [tip:sched/core] x86: Add generic aperf/mperf code tip-bot for Peter Zijlstra
2009-09-16 10:23 ` [tip:sched/core] x86: sched: Provide arch implementations using aperf/mperf tip-bot for Peter Zijlstra
2009-09-16 10:23 ` [tip:sched/core] sched: Feature to disable APERF/MPERF cpu_power tip-bot for Peter Zijlstra
2009-09-16 10:23 ` [tip:sched/core] sched: Rename select_task_rq() argument tip-bot for Peter Zijlstra
2009-09-16 10:24 ` [tip:sched/core] sched: Rename sync arguments tip-bot for Peter Zijlstra
2009-09-16 10:24 ` [tip:sched/core] sched: Add WF_FORK tip-bot for Peter Zijlstra
2009-09-16 10:24 ` [tip:sched/core] sched: Fix sync wakeups again tip-bot for Peter Zijlstra
2009-09-16 10:24 ` [tip:sched/core] sched: Add a few SYNC hint knobs to play with tip-bot for Peter Zijlstra
2009-09-16 10:24 ` [tip:sched/core] sched: Add SD_PREFER_LOCAL tip-bot for Peter Zijlstra
2009-09-16 10:25 ` [tip:sched/core] sched: Implement a gentler fair-sleepers feature tip-bot for Ingo Molnar
2009-09-16 10:25 ` [tip:sched/core] sched: x86: Name old_perf in a unique way tip-bot for Peter Zijlstra
2009-09-16 10:25 ` [tip:perfcounters/core] perf sched: Account for lost events, increase default buffering tip-bot for Ingo Molnar
2009-09-16 10:25 ` [tip:perfcounters/core] perf sched: Sanity check context switch events tip-bot for Ingo Molnar
2009-09-16 10:25 ` [tip:perfcounters/core] perf sched: Make idle thread and comm/pid names more consistent tip-bot for Ingo Molnar
2009-09-16 12:36 ` [tip:x86/platform] x86: Move get/set_wallclock to x86_platform_ops tip-bot for Feng Tang
2009-09-16 14:45 ` [tip:perfcounters/core] perf sched: Add 'perf sched map' scheduling event map printout tip-bot for Ingo Molnar
2009-09-16 15:09 ` [tip:sched/core] sched: Optimize cgroup vs wakeup a bit tip-bot for Peter Zijlstra
2009-09-16 15:09 ` [tip:sched/core] sched: Clean up the load_idx selection in select_task_rq_fair tip-bot for Peter Zijlstra
2009-09-16 15:10 ` [tip:sched/core] sched: Rename flags to wake_flags tip-bot for Peter Zijlstra
2009-09-16 15:10 ` [tip:sched/core] sched: Disable wakeup balancing tip-bot for Peter Zijlstra
2009-09-16 18:50 ` Peter Zijlstra
2009-09-16 19:13 ` [tip:sched/core] sched: Fix TASK_WAKING & loadaverage breakage tip-bot for Ingo Molnar
2009-09-16 19:15 ` tip-bot for Ingo Molnar
2009-09-17 7:48 ` [tip:sched/core] sched: Add new wakeup preemption mode: WAKEUP_RUNNING tip-bot for Peter Zijlstra
2009-09-17 7:49 ` [tip:sched/core] sched: Fix TASK_WAKING & loadaverage breakage tip-bot for Ingo Molnar
2009-09-17 7:54 ` tip-bot for Ingo Molnar
2009-09-17 7:54 ` [tip:sched/core] sched: Add new wakeup preemption mode: WAKEUP_RUNNING, disable FAIR_SLEEPERS tip-bot for Peter Zijlstra
2009-09-17 8:12 ` [tip:sched/core] sched: Add new wakeup preemption mode: WAKEUP_RUNNING tip-bot for Peter Zijlstra
2009-09-17 8:18 ` tip-bot for Peter Zijlstra
2009-09-17 8:54 ` [tip:sched/core] sched: Stop buddies from hogging the system tip-bot for Peter Zijlstra
2009-09-17 8:54 ` [tip:sched/core] sched: Fix SD_POWERSAVING_BALANCE|SD_PREFER_LOCAL vs SD_WAKE_AFFINE tip-bot for Peter Zijlstra
2009-09-17 18:07 ` [tip:perfcounters/core] perf sched: Determine the number of CPUs automatically tip-bot for Ingo Molnar
2009-09-17 19:34 ` Arjan van de Ven
2009-09-17 19:45 ` Ingo Molnar
2009-09-17 20:09 ` Ingo Molnar
2009-09-17 18:07 ` [tip:perfcounters/core] perf_counter: Do not throttle single swcounter events tip-bot for Peter Zijlstra
2009-09-17 18:07 ` [tip:perfcounters/core] perf_counter: Allow for a wakeup watermark tip-bot for Peter Zijlstra
2009-09-17 18:07 ` [tip:perfcounters/core] perf record: Disable profiling before draining the buffer tip-bot for Peter Zijlstra
2009-09-17 20:12 ` [tip:perfcounters/core] perf_counter: Do not throttle single swcounter events tip-bot for Peter Zijlstra
2009-09-17 20:13 ` [tip:perfcounters/core] perf_counter: Allow for a wakeup watermark tip-bot for Peter Zijlstra
2009-09-17 20:13 ` [tip:perfcounters/core] perf record: Disable profiling before draining the buffer tip-bot for Peter Zijlstra
2009-09-17 20:13 ` [tip:perfcounters/core] perf sched: Determine the number of CPUs automatically tip-bot for Ingo Molnar
2009-09-18 19:18 ` [tip:perfcounters/core] perf_counter: Fix up swcounter throttling tip-bot for Peter Zijlstra
2009-09-18 19:19 ` [tip:perfcounters/core] sched_clock: Make it NMI safe tip-bot for Peter Zijlstra
2009-09-19 15:16 ` [tip:sched/urgent] sched: Re-add lost cpu_allowed check to sched_fair.c::select_task_rq_fair() tip-bot for Mike Galbraith
2009-09-21 12:52 ` [tip:perfcounters/rename] perf_counter: Rename list_entry -> group_entry, counter_list -> group_list tip-bot for Ingo Molnar
2009-09-21 12:52 ` [tip:perfcounters/rename] perf_counter: Rename 'event' to event_id/hw_event tip-bot for Ingo Molnar
2009-09-21 12:53 ` [tip:perfcounters/rename] perf: Tidy up after the big rename tip-bot for Ingo Molnar
2009-09-22 13:34 ` [tip:core/printk] ratelimit: Use per ratelimit context locking tip-bot for Ingo Molnar
2009-09-22 13:34 ` [tip:core/printk] ratelimit: Fix/allow use in atomic contexts tip-bot for Ingo Molnar
2009-09-22 14:46 ` Linus Torvalds
2009-09-22 13:34 ` [tip:perf/urgent] perf stat: Fix zero total printouts tip-bot for Ingo Molnar
2009-09-22 13:34 ` [tip:x86/urgent] x86: mce: Clean up thermal throttling state tracking code tip-bot for Ingo Molnar
2009-09-22 13:34 ` [tip:x86/urgent] x86: mce: Fix thermal throttling message storm tip-bot for Ingo Molnar
2009-09-22 14:26 ` [tip:core/printk] printk: Remove ratelimit.h from kernel.h tip-bot for Ingo Molnar
2009-09-25 8:49 ` [tip:perf/urgent] perf_event: Provide vmalloc() based mmap() backing tip-bot for Peter Zijlstra
2009-10-04 7:54 ` [tip:core/futexes] futex: Fix locking imbalance tip-bot for Thomas Gleixner
2009-10-04 15:48 ` [tip:core/urgent] " tip-bot for Thomas Gleixner
2009-10-05 19:11 ` tip-bot for Thomas Gleixner
2009-10-06 13:18 ` [tip:perf/core] perf tools: Default to 1 KHz auto-sampling freq events tip-bot for Ingo Molnar
2009-10-06 13:42 ` tip-bot for Ingo Molnar
2009-10-06 15:03 ` [tip:core/urgent] futex: Nullify robust lists after cleanup tip-bot for Peter Zijlstra
2009-10-06 15:54 ` Anirban Sinha
2009-10-06 15:03 ` [tip:core/urgent] futex: Move exit_pi_state() call to release_mm() tip-bot for Thomas Gleixner
2009-10-12 7:13 ` [tip:perf/core] perf sched: Add -C option to measure on a specific CPU tip-bot for Mike Galbraith
2009-10-13 19:04 ` [tip:core/urgent] futex: Handle spurious wake up tip-bot for Thomas Gleixner
2009-10-15 10:46 ` [tip:perf/core] events: Harmonize event field names and print output names tip-bot for Ingo Molnar
2009-10-16 8:40 ` [tip:perf/urgent] perf tools: Bump version to 0.0.2 tip-bot for Ingo Molnar
2009-10-24 1:04 ` [tip:branch?] sched: Strengthen buddies and mitigate buddy induced latencies tip-bot for Mike Galbraith
2009-11-02 9:30 ` [tip:x86/urgent] x86: Fix printk message typo in mtrr cleanup code tip-bot for Dave Jones
2009-11-02 19:45 ` [tip:sched/urgent] sched: Disable SD_PREFER_LOCAL at node level tip-bot for Mike Galbraith
2009-11-03 7:03 ` tip-bot for Mike Galbraith
2009-11-04 19:33 ` [tip:sched/core] sched: Rate-limit newidle tip-bot for Mike Galbraith
2009-11-12 11:33 ` [tip:sched/urgent] sched: Fix/add missing update_rq_clock() calls tip-bot for Mike Galbraith
2009-11-13 19:49 ` [tip:timers/core] nohz: Type cast printk argument tip-bot for Thomas Gleixner
2009-11-13 19:50 ` [tip:timers/core] nohz: Track last do_timer() cpu tip-bot for Thomas Gleixner
2009-11-17 17:18 ` [tip:perf/urgent] perf annotate: Allocate history size correctly tip-bot for Nick Piggin
2009-11-23 7:15 ` [tip:tracing/core] ring-buffer benchmark: Run producer/consumer threads at nice +19 tip-bot for Ingo Molnar
2009-11-24 14:16 ` Steven Rostedt
2009-11-24 14:20 ` Steven Rostedt
2009-11-24 14:39 ` Ingo Molnar
2009-11-24 15:01 ` Steven Rostedt
2009-11-24 15:22 ` Ingo Molnar
2009-11-24 15:40 ` Steven Rostedt
2009-11-23 11:52 ` [tip:perf/core] perf events: Do not generate function trace entries in perf code tip-bot for Ingo Molnar
2009-11-23 11:53 ` [tip:tracing/core] tracing, function tracer: Clean up strstrip() usage tip-bot for Ingo Molnar
2009-11-24 14:15 ` Steven Rostedt
2009-11-23 11:53 ` [tip:perf/core] perf_events: Optimize the swcounter hotpath tip-bot for Ingo Molnar
2009-11-26 8:15 ` [tip:x86/debug] x86: dumpstack: Clean up the x86_stack_ids[][] initalization and other details tip-bot for Ingo Molnar
2009-11-30 8:23 ` [tip:perf/scripting] perf scripting: Fix build tip-bot for Ingo Molnar
2009-12-06 20:27 ` [tip:sched/urgent] sched: Fix balance vs hotplug race tip-bot for Peter Zijlstra
2009-12-09 9:53 ` [tip:sched/urgent] sched: Remove sysctl.sched_features tip-bot for Peter Zijlstra
2009-12-09 9:53 ` [tip:sched/urgent] sched: Consolidate select_task_rq() callers tip-bot for Peter Zijlstra
2009-12-09 9:53 ` [tip:sched/urgent] sched: Remove rq->clock coupling from set_task_cpu() tip-bot for Peter Zijlstra
2009-12-09 9:54 ` [tip:sched/urgent] sched: Clean up ttwu() rq locking tip-bot for Peter Zijlstra
2009-12-09 9:54 ` [tip:sched/urgent] sched: Sanitize fork() handling tip-bot for Peter Zijlstra
2009-12-09 9:54 ` [tip:sched/urgent] sched: Clean up check_preempt_wakeup() tip-bot for Peter Zijlstra
2009-12-09 9:55 ` [tip:sched/urgent] sched: Discard some old bits tip-bot for Peter Zijlstra
2009-12-09 9:55 ` [tip:sched/urgent] sched: Remove unnecessary RCU exclusion tip-bot for Peter Zijlstra
2009-12-10 8:43 ` [tip:sched/urgent] sched: Fix build warning in get_update_sysctl_factor() tip-bot for Mike Galbraith
2009-12-10 19:36 ` [tip:sched/urgent] sched: Remove forced2_migrations stats tip-bot for Ingo Molnar
2009-12-15 9:27 ` [tip:perf/diff] perf diff: Improve the help text tip-bot for Ingo Molnar
2009-12-15 14:30 ` tip-bot for Ingo Molnar
2009-12-28 10:07 ` [tip:perf/core] perf events: Remove arg from perf sched hooks tip-bot for Peter Zijlstra
2010-01-21 13:52 ` [tip:sched/core] sched: Move load balance code into sched_fair.c tip-bot for Peter Zijlstra
2010-01-21 13:52 ` [tip:sched/core] sched: Remove the sched_class load_balance methods tip-bot for Peter Zijlstra
2010-01-21 13:52 ` [tip:sched/core] sched: Remove rq_iterator usage from load_balance_fair tip-bot for Peter Zijlstra
2010-01-21 13:52 ` [tip:sched/core] sched: Remove rq_iterator from move_one_task tip-bot for Peter Zijlstra
2010-01-21 13:53 ` [tip:sched/core] sched: Remove from fwd decls tip-bot for Peter Zijlstra
2010-01-21 13:53 ` [tip:sched/core] sched: Add a lock break for PREEMPT=y tip-bot for Peter Zijlstra
2010-01-21 13:53 ` [tip:sched/core] sched: Unify load_balance{,_newidle}() tip-bot for Peter Zijlstra
2010-01-21 13:53 ` [tip:sched/core] sched: Remove load_balance_newidle() tip-bot for Peter Zijlstra
2010-01-21 13:54 ` [tip:sched/core] sched: Assume *balance is valid tip-bot for Peter Zijlstra
2010-01-21 13:55 ` [tip:perf/urgent] perf: Change the is_software_event() definition tip-bot for Peter Zijlstra
2010-01-27 13:16 ` [tip:perf/core] perf: Reimplement frequency driven sampling tip-bot for Peter Zijlstra
2010-01-29 9:29 ` [tip:perf/core] perf_event: x86: Optimize x86_pmu_disable() tip-bot for Peter Zijlstra
2010-01-29 9:29 ` [tip:perf/core] perf, x86: Clean up event constraints code a bit tip-bot for Ingo Molnar
2010-01-29 9:29 ` [tip:perf/core] perf_event: x86: Deduplicate the disable code tip-bot for Peter Zijlstra
2010-01-31 8:30 ` [tip:perf/core] Revert "perf record: Intercept all events" tip-bot for Hitoshi Mitake
2010-02-04 9:52 ` [tip:x86/debug] x86_64: Print modules like i386 does tip-bot for Alexey Dobriyan
2010-02-04 9:56 ` [tip:perf/core] perf_events: Optimize perf_event_task_tick() tip-bot for Peter Zijlstra
2010-02-04 9:56 ` [tip:perf/core] perf_events, x86: Implement intel core solo/duo support tip-bot for Peter Zijlstra
2010-02-04 9:57 ` [tip:perf/core] bitops: Ensure the compile time HWEIGHT is only used for such tip-bot for Peter Zijlstra
2010-02-04 10:27 ` [PATCH] bitops: Optimize hweight() by making use of compile-time evaluation Peter Zijlstra
2010-02-26 10:24 ` [tip:perf/core] perf_events: Report the MMAP pgoff value in bytes tip-bot for Peter Zijlstra
2010-02-26 10:25 ` [tip:perf/core] perf_events, x86: Remove superflous MSR writes tip-bot for Peter Zijlstra
2010-02-26 14:54 ` [tip:perf/core] perf_events, x86: Split PMU definitions into separate files tip-bot for Peter Zijlstra
2010-03-02 14:30 ` [tip:perf/nmi] nmi_watchdog: Tell the world we're active tip-bot for Peter Zijlstra
2010-03-02 14:30 ` [tip:perf/core] perf, x86: Restrict the ANY flag tip-bot for Peter Zijlstra
2010-03-02 14:31 ` [tip:perf/core] perf_events, x86: Fixup fixed counter constraints tip-bot for Peter Zijlstra
2010-03-02 16:26 ` Stephane Eranian
2010-03-02 17:54 ` Peter Zijlstra
2010-03-03 6:16 ` Stephane Eranian
2010-03-09 8:21 ` [tip:perf/urgent] MAINTAINERS: Add Arnaldo as tools/perf/ co-maintainer tip-bot for Ingo Molnar
2010-03-10 13:10 ` [tip:perf/urgent] perf: Optimize perf_disable tip-bot for Peter Zijlstra
2010-03-10 13:10 ` [tip:perf/urgent] perf, x86, Do not user perf_disable from NMI context tip-bot for Peter Zijlstra
2010-03-10 13:12 ` [tip:perf/urgent] perf, x86: Fix x86_pmu_start tip-bot for Peter Zijlstra
2010-03-10 13:12 ` [tip:perf/urgent] perf, x86: Avoid double disable on throttle vs ioctl(PERF_IOC_DISABLE) tip-bot for Peter Zijlstra
2010-03-10 13:12 ` [tip:perf/urgent] perf, x86: Properly account n_added tip-bot for Peter Zijlstra
2010-03-10 13:12 ` [tip:perf/urgent] perf, x86: Fix double disable calls tip-bot for Peter Zijlstra
2010-03-10 13:13 ` [tip:perf/urgent] perf, x86: Fix double enable calls tip-bot for Peter Zijlstra
2010-03-10 13:13 ` [tip:perf/urgent] perf: Provide better condition for event rotation tip-bot for Peter Zijlstra
2010-03-10 13:22 ` [tip:perf/pebs] perf, x86: Avoid double disable on throttle vs ioctl(PERF_IOC_DISABLE) tip-bot for Peter Zijlstra
2010-03-10 13:22 ` [tip:perf/pebs] perf, x86: Fix pebs drains tip-bot for Peter Zijlstra
2010-03-10 13:22 ` [tip:perf/pebs] perf, x86: Fix PEBS enable/disable vs cpuc->enabled tip-bot for Peter Zijlstra
2010-03-10 13:22 ` [tip:perf/pebs] perf, x86: Fix LBR " tip-bot for Peter Zijlstra
2010-03-10 13:23 ` [tip:perf/pebs] perf, x86: Reorder intel_pmu_enable_all() tip-bot for Peter Zijlstra
2010-03-10 13:23 ` [tip:perf/pebs] perf, x86: Deal with multiple state bits for pebs-fmt1 tip-bot for Peter Zijlstra
2010-03-10 13:23 ` [tip:perf/pebs] perf, x86: Fix silly bug in intel_pmu_pebs_{enable,disable} tip-bot for Peter Zijlstra
2010-03-10 13:23 ` [tip:perf/pebs] perf, x86: Don't reset the LBR as frequently tip-bot for Peter Zijlstra
2010-03-10 13:24 ` [tip:perf/pebs] perf, x86: Remove checking_{wr,rd}msr() usage tip-bot for Peter Zijlstra
2010-03-10 13:24 ` [tip:perf/pebs] perf, x86: Fixup the PEBS handler for Core2 cpus tip-bot for Peter Zijlstra
2010-03-10 13:24 ` [tip:perf/pebs] perf, x86: Fix LBR read-out tip-bot for Peter Zijlstra
2010-03-10 13:25 ` [tip:perf/pebs] perf, x86: Add INSTRUCTION_DECODER config flag tip-bot for Ingo Molnar
2010-03-10 13:25 ` [tip:perf/pebs] perf, x86: Fix the !CONFIG_CPU_SUP_INTEL build tip-bot for Ingo Molnar
2010-03-11 14:41 ` [tip:perf/urgent] perf, ppc: Fix compile error due to new cpu notifiers tip-bot for Peter Zijlstra
2010-03-11 14:41 ` [tip:sched/core] sched: Fix pick_next_highest_task_rt() for cgroups tip-bot for Peter Zijlstra
2010-04-02 19:10 ` [tip:perf/core] perf, x86: Fix __initconst vs const tip-bot for Peter Zijlstra
2010-04-02 19:10 ` [tip:perf/core] perf, x86: Add Nehalem programming quirk to Westmere tip-bot for Peter Zijlstra
2010-04-02 19:13 ` [tip:sched/core] sched: Fix TASK_WAKING vs fork deadlock tip-bot for Peter Zijlstra
2010-04-02 19:13 ` [tip:sched/core] sched: Optimize task_rq_lock() tip-bot for Peter Zijlstra
2010-04-02 19:13 ` [tip:sched/core] sched: Fix nr_uninterruptible count tip-bot for Peter Zijlstra
2010-04-02 19:14 ` [tip:sched/core] sched: Add enqueue/dequeue flags tip-bot for Peter Zijlstra
2010-04-23 10:50 ` [tip:sched/core] sched: Pre-compute cpumask_weight(sched_domain_span(sd)) tip-bot for Peter Zijlstra
2010-05-07 18:41 ` [tip:perf/core] perf: Annotate perf_event_read_group() vs perf_event_release_kernel() tip-bot for Peter Zijlstra
2010-05-07 18:43 ` [tip:perf/core] perf, x86: Remove PEBS SAMPLE_RAW support tip-bot for Peter Zijlstra
2010-05-07 18:43 ` [tip:perf/core] perf, x86: Consolidate some code repetition tip-bot for Peter Zijlstra
2010-05-07 18:44 ` [tip:perf/core] perf, x86: Improve the PEBS ABI tip-bot for Peter Zijlstra
2010-05-11 7:24 ` [tip:perf/core] Revert "perf: Fix exit() vs PERF_FORMAT_GROUP" tip-bot for Ingo Molnar
2010-05-17 21:09 ` [tip:perf/core] perf symbols: symbol inconsistency message should be done only at verbose=1 tip-bot for Arnaldo Carvalho de Melo
2010-05-17 22:33 ` [tip:perf/core] perf tools: Add mode to build without newt support tip-bot for Arnaldo Carvalho de Melo
2010-05-18 17:15 ` [tip:perf/core] perf/ftrace: Optimize perf/tracepoint interaction for single events tip-bot for Peter Zijlstra
2010-05-19 7:58 ` Frederic Weisbecker
2010-05-19 8:18 ` Peter Zijlstra
2010-05-19 8:23 ` Frederic Weisbecker
2010-05-19 8:31 ` Peter Zijlstra
2010-05-19 8:58 ` Peter Zijlstra
2010-05-19 9:06 ` Frederic Weisbecker
2010-05-19 9:12 ` Peter Zijlstra
2010-05-19 9:13 ` Frederic Weisbecker
2010-05-21 11:27 ` [tip:perf/core] perf, trace: Optimize tracepoints by removing IRQ-disable from perf/tracepoint interaction tip-bot for Peter Zijlstra
2010-05-18 17:16 ` [tip:perf/core] perf: Disallow mmap() on per-task inherited events tip-bot for Peter Zijlstra
2010-05-18 17:16 ` [tip:perf/core] perf: Optimize the perf_output() path by removing IRQ-disables tip-bot for Peter Zijlstra
2010-05-18 17:17 ` [tip:perf/core] perf: Optimize the hotpath by converting the perf output buffer to local_t tip-bot for Peter Zijlstra
2010-05-18 17:17 ` [tip:perf/core] perf: Optimize perf_output_*() by avoiding local_xchg() tip-bot for Peter Zijlstra
2010-05-31 7:19 ` [tip:perf/urgent] perf_events: Fix races and clean up perf_event and perf_mmap_data interaction tip-bot for Peter Zijlstra
2010-05-31 7:19 ` [tip:perf/urgent] perf_events: Fix races in group composition tip-bot for Peter Zijlstra
2010-06-08 20:55 ` [tip:perf/core] perf: Fix signed comparison in perf_adjust_period() tip-bot for Peter Zijlstra
2010-06-08 20:55 ` [tip:sched/core] sched: Fix PROVE_RCU vs cpu_cgroup tip-bot for Peter Zijlstra
2010-06-08 20:55 ` [tip:perf/core] perf, x86: Small fix to cpuid10_edx tip-bot for Livio Soares
2010-06-09 10:14 ` [tip:perf/core] perf, trace: Inline perf_swevent_put_recursion_context() tip-bot for Peter Zijlstra
2010-06-09 10:15 ` [tip:perf/core] perf, trace: Remove superfluous rcu_read_lock() tip-bot for Peter Zijlstra
2010-06-09 10:16 ` [tip:perf/core] perf: Rename perf_mmap_data to perf_buffer tip-bot for Peter Zijlstra
2010-06-09 10:16 ` [tip:perf/core] perf: Simplify the ring-buffer logic: make perf_buffer_alloc() do everything needed tip-bot for Peter Zijlstra
2010-06-09 10:17 ` [tip:perf/core] arch: Implement local64_t tip-bot for Peter Zijlstra
2010-06-09 10:17 ` [tip:perf/core] perf: Add perf_event_count() tip-bot for Peter Zijlstra
2010-06-09 10:17 ` [tip:perf/core] perf: Add perf_event::child_count tip-bot for Peter Zijlstra
2010-06-09 10:18 ` [tip:perf/core] perf: Convert perf_event to local_t tip-bot for Peter Zijlstra
2010-06-09 10:18 ` [tip:perf/core] perf: Fix build breakage for architecutes without atomic64_t tip-bot for Peter Zijlstra
2010-07-17 11:12 ` [tip:sched/urgent] sched: Revert nohz_ratelimit() for now tip-bot for Peter Zijlstra
2010-07-18 10:33 ` [tip:perf/core] perf ui: Make END go to the last entry, not the top of the last page tip-bot for Arnaldo Carvalho de Melo
2010-07-18 10:34 ` [tip:perf/core] perf hists: Factor out duplicated code tip-bot for Arnaldo Carvalho de Melo
2010-08-02 7:49 ` [tip:perf/core] perf sort: Make column width code per hists instance tip-bot for Arnaldo Carvalho de Melo
2010-08-02 7:49 ` [tip:perf/core] perf ui: Restore SPACE as an alias to PGDN in annotate tip-bot for Arnaldo Carvalho de Melo
2010-08-02 7:49 ` [tip:perf/core] perf hist: Introduce routine to measure lenght of formatted entry tip-bot for Arnaldo Carvalho de Melo
2010-08-02 7:50 ` [tip:perf/core] perf ui: Consider the refreshed dimensions in ui_browser__show tip-bot for Arnaldo Carvalho de Melo
2010-08-02 7:50 ` [tip:perf/core] perf ui: Show the scroll bar over the left window frame tip-bot for Arnaldo Carvalho de Melo
2010-08-02 7:50 ` [tip:perf/core] perf ui: New hists tree widget tip-bot for Arnaldo Carvalho de Melo
2010-08-02 7:51 ` [tip:perf/core] perf report: Don't abbreviate file paths relative to the cwd tip-bot for Dave Martin
2010-08-02 7:51 ` [tip:perf/core] perf tools: Remove unneeded code for tracking the cwd in perf sessions tip-bot for Dave Martin
2010-08-02 7:51 ` [tip:perf/core] perf man pages: Fix cut'n'paste error tip-bot for Arnaldo Carvalho de Melo
2010-08-02 7:52 ` [tip:perf/core] perf record: Release resources at exit tip-bot for Arnaldo Carvalho de Melo
2010-08-02 7:52 ` [tip:perf/core] perf symbols: Precisely specify if dso->{long,short}_name should be freed tip-bot for Arnaldo Carvalho de Melo
2010-08-02 7:52 ` [tip:perf/core] perf tools: Factor out buildid reading and make it implicit in dso__load tip-bot for Dave Martin
2010-08-02 7:52 ` [tip:perf/core] perf tools: remove extra build-id check factored into dso__load tip-bot for Dave Martin
2010-08-02 7:53 ` [tip:perf/core] perf symbols: Improve debug image search when loading symbols tip-bot for Dave Martin
2010-08-02 7:53 ` [tip:perf/core] perf tui: Make CTRL+Z suspend perf tip-bot for Arnaldo Carvalho de Melo
2010-08-02 7:54 ` [tip:perf/core] perf tools: Release thread resources on PERF_RECORD_EXIT tip-bot for Arnaldo Carvalho de Melo
2010-08-02 7:54 ` [tip:perf/core] perf tools: Release session and symbol resources on exit tip-bot for Arnaldo Carvalho de Melo
2010-08-03 5:54 ` [tip:perf/core] perf session: Free the ref_reloc_sym memory at the right place tip-bot for Arnaldo Carvalho de Melo
2010-08-03 5:54 ` [tip:perf/core] perf session: Invalidate last_match when removing threads from rb_tree tip-bot for Arnaldo Carvalho de Melo
2010-08-03 5:55 ` [tip:perf/core] perf tools: Don't keep unreferenced maps when unmaps are detected tip-bot for Arnaldo Carvalho de Melo
2010-08-06 17:04 ` [tip:perf/core] perf symbols: Store the symbol binding tip-bot for Arnaldo Carvalho de Melo
2010-08-06 17:04 ` [tip:perf/core] perf ui: Add a map browser tip-bot for Arnaldo Carvalho de Melo
2010-08-06 17:04 ` [tip:perf/core] perf ui: Shorten ui_browser->refresh_entries to refresh tip-bot for Arnaldo Carvalho de Melo
2010-08-06 17:05 ` [tip:perf/core] perf hists: Handle verbose in hists__sort_list_width tip-bot for Arnaldo Carvalho de Melo
2010-08-06 17:05 ` [tip:perf/core] perf hists: Fixup addr snprintf width on 32 bit arches tip-bot for Arnaldo Carvalho de Melo
2010-08-06 17:05 ` [tip:perf/core] perf ui: Add search by name/addr to the map__browser tip-bot for Arnaldo Carvalho de Melo
2010-08-06 17:06 ` [tip:perf/core] perf report: Speed up exit path tip-bot for Arnaldo Carvalho de Melo
2010-08-07 7:01 ` [tip:perf/core] perf tui: Introduce list_head based generic ui_browser refresh routine tip-bot for Arnaldo Carvalho de Melo
2010-08-07 7:01 ` [tip:perf/core] perf ui: Start breaking down newt.c into multiple files tip-bot for Arnaldo Carvalho de Melo
2010-08-11 7:39 ` [tip:perf/core] perf ui: Shorten ui_browser member names tip-bot for Arnaldo Carvalho de Melo
2010-08-11 7:40 ` [tip:perf/core] perf ui: Move ui_helpline routines to separate file in util/ui/ tip-bot for Arnaldo Carvalho de Melo
2010-08-11 7:40 ` [tip:perf/core] perf ui: Move ui_progress " tip-bot for Arnaldo Carvalho de Melo
2010-08-11 7:40 ` [tip:perf/core] perf ui: Move annotate browser to util/ui/browsers/ tip-bot for Arnaldo Carvalho de Melo
2010-08-11 7:41 ` [tip:perf/core] perf ui: Move map " tip-bot for Arnaldo Carvalho de Melo
2010-08-11 7:41 ` [tip:perf/core] perf ui: Move hists " tip-bot for Arnaldo Carvalho de Melo
2010-08-11 7:42 ` [tip:perf/core] perf ui: Complete the breakdown of util/newt.c tip-bot for Arnaldo Carvalho de Melo
2010-08-11 7:42 ` [tip:perf/core] perf annotate: Sort by hottest lines in the TUI tip-bot for Arnaldo Carvalho de Melo
2010-08-11 7:42 ` [tip:perf/core] perf ui: Make SPACE work as PGDN in all browsers tip-bot for Arnaldo Carvalho de Melo
2010-08-11 7:43 ` [tip:perf/core] perf annotate: Cycle thru sorted lines with samples tip-bot for Arnaldo Carvalho de Melo
2010-08-11 7:43 ` [tip:perf/core] perf ui browser: Add ui_browser__show counterpart: __hide tip-bot for Arnaldo Carvalho de Melo
2010-08-11 7:43 ` [tip:perf/core] perf ui hist browser: Fixup key bindings tip-bot for Arnaldo Carvalho de Melo
2010-08-12 20:03 ` [tip:perf/urgent] perf: Add back list_head data types tip-bot for Ingo Molnar
2010-08-16 17:32 ` [tip:perf/urgent] perf annotate tui: Fix exit and RIGHT keys handling tip-bot for Arnaldo Carvalho de Melo
2010-08-20 12:39 ` [tip:perf/core] perf ui browser: Abstract some more slang operations tip-bot for Arnaldo Carvalho de Melo
2010-08-20 12:40 ` [tip:perf/core] perf ui browser: Return the exit key in all browsers tip-bot for Arnaldo Carvalho de Melo
2010-08-20 12:40 ` [tip:perf/core] perf ui browser: Add routines to compactly specify exit keys tip-bot for Arnaldo Carvalho de Melo
2010-08-21 20:18 ` [tip:perf/core] perf tools: Add --tui and --stdio to choose the UI tip-bot for Arnaldo Carvalho de Melo
2010-08-30 8:33 ` [tip:perf/core] perf hists: Fix hist_entry__init_have_children tip-bot for Arnaldo Carvalho de Melo
2010-08-30 8:34 ` [tip:perf/core] perf hists browser: replace rb_first() != NULL by !RB_EMPTY_ROOT() tip-bot for Arnaldo Carvalho de Melo
2010-08-30 8:34 ` [tip:perf/core] perf hists browser: Init the has_children fields just once tip-bot for Arnaldo Carvalho de Melo
2010-08-30 8:34 ` [tip:perf/core] perf hists browser: Introduce "expand/collapse all callchains" action tip-bot for Arnaldo Carvalho de Melo
2010-09-09 19:45 ` [tip:perf/core] perf: Fix CPU hotplug tip-bot for Peter Zijlstra
2010-09-09 19:47 ` [tip:perf/core] perf: Deconstify struct pmu tip-bot for Peter Zijlstra
2010-09-09 19:47 ` [tip:perf/core] perf: Register PMU implementations tip-bot for Peter Zijlstra
2010-09-09 19:48 ` [tip:perf/core] perf: Unindent labels tip-bot for Peter Zijlstra
2010-09-09 19:48 ` [tip:perf/core] perf: Reduce perf_disable() usage tip-bot for Peter Zijlstra
2010-09-09 19:49 ` [tip:perf/core] perf: Per PMU disable tip-bot for Peter Zijlstra
2010-09-09 19:49 ` [tip:perf/core] perf: Default PMU ops tip-bot for Peter Zijlstra
2010-09-09 19:49 ` [tip:perf/core] perf: Shrink hw_perf_event tip-bot for Peter Zijlstra
2010-09-09 19:50 ` [tip:perf/core] perf: Rework the PMU methods tip-bot for Peter Zijlstra
2010-09-11 8:16 ` Michael Cree
2010-09-11 9:40 ` Peter Zijlstra
2010-09-12 5:33 ` Michael Cree
2010-09-12 5:37 ` [PATCH] alpha: Fix HW performance counters to be stopped properly Michael Cree
2010-09-15 10:02 ` [tip:perf/core] " tip-bot for Michael Cree
2010-09-13 12:15 ` [tip:perf/core] perf: Rework the PMU methods Peter Zijlstra
2010-09-13 13:18 ` Peter Zijlstra
2010-09-14 10:11 ` Michael Cree
2010-09-14 14:07 ` Peter Zijlstra
2010-09-15 20:25 ` Michael Cree
2010-09-09 19:50 ` [tip:perf/core] perf: Remove the sysfs bits tip-bot for Peter Zijlstra
2010-09-09 19:50 ` [tip:perf/core] perf: Separate find_get_context() from event initialization tip-bot for Peter Zijlstra
2010-09-09 19:51 ` [tip:perf/core] perf: Remove the swevent hash-table from the cpu context tip-bot for Peter Zijlstra
2010-09-09 19:51 ` [tip:perf/core] perf: Per cpu-context rotation timer tip-bot for Peter Zijlstra
2010-09-09 19:51 ` [tip:perf/core] perf: Per-pmu-per-cpu contexts tip-bot for Peter Zijlstra
2010-09-10 14:54 ` Frederic Weisbecker
2010-09-10 15:37 ` Paul E. McKenney
2010-09-10 15:46 ` Peter Zijlstra
2010-09-10 16:05 ` Paul E. McKenney
2010-09-10 15:56 ` Peter Zijlstra
2010-09-09 19:52 ` [tip:perf/core] perf: Move some code around tip-bot for Peter Zijlstra
2010-09-09 19:52 ` [tip:perf/core] perf: Clean up perf_event_context allocation tip-bot for Peter Zijlstra
2010-09-09 19:52 ` [tip:perf/core] perf: Multiple task contexts tip-bot for Peter Zijlstra
2010-09-09 19:53 ` [tip:perf/core] perf: Provide a separate task context for swevents tip-bot for Peter Zijlstra
2010-09-09 19:53 ` [tip:perf/core] perf: Optimize context ops tip-bot for Peter Zijlstra
2010-09-09 19:54 ` [tip:perf/core] perf: Fix up delayed_put_task_struct() tip-bot for Peter Zijlstra
2010-09-10 14:32 ` [tip:perf/core] perf: Ensure we call add_event_to_ctx() with the right locks held tip-bot for Peter Zijlstra
2010-09-10 15:48 ` [tip:perf/core] perf: Fix perf_init_event() tip-bot for Peter Zijlstra
2010-09-13 15:18 ` [tip:perf/core] perf: Sanitize the RCU logic tip-bot for Peter Zijlstra
2010-09-13 15:19 ` [tip:perf/core] perf: Fix free_event() tip-bot for Peter Zijlstra
2010-10-18 19:15 ` [tip:sched/core] sched: Unindent labels tip-bot for Peter Zijlstra
2010-10-18 19:22 ` [tip:perf/core] perf: Optimize sw events tip-bot for Peter Zijlstra
2010-10-18 19:22 ` [tip:perf/core] jump_label: Add COND_STMT(), reducer wrappery tip-bot for Peter Zijlstra
2010-10-26 10:22 ` [tip:perf/urgent] perf python scripting: Improve the failed-syscalls-by-pid script tip-bot for Arnaldo Carvalho de Melo
2010-10-26 10:22 ` [tip:perf/urgent] perf python scripting: Improve the syscalls-counts script tip-bot for Arnaldo Carvalho de Melo
2010-10-26 10:22 ` [tip:perf/urgent] perf python scripting: print the syscall name on sctop tip-bot for Arnaldo Carvalho de Melo
2010-10-26 10:23 ` [tip:perf/urgent] perf python scripting: Improve the syscalls-by-pid script tip-bot for Arnaldo Carvalho de Melo
2010-10-26 10:23 ` [tip:perf/urgent] perf python scripting: Support fedora 11 (audit 1.7.17) tip-bot for Arnaldo Carvalho de Melo
2010-10-27 11:01 ` [tip:perf/urgent] perf scripting: Shut up 'perf record' final status tip-bot for Arnaldo Carvalho de Melo
2010-10-27 11:01 ` [tip:perf/urgent] perf python scripting: Fixup cut'n'paste error in sctop script tip-bot for Arnaldo Carvalho de Melo
2010-10-27 11:02 ` [tip:perf/urgent] perf python scripting: Add futex-contention script tip-bot for Arnaldo Carvalho de Melo
2010-11-21 13:43 ` [tip:perf/core] perf tools: Change my maintainer address tip-bot for Arnaldo Carvalho de Melo
2010-11-23 10:22 ` [tip:sched/core] sched: Fix UP build breakage tip-bot for Peter Zijlstra
2010-11-23 10:22 ` [tip:sched/core] cpu: Remove incorrect BUG_ON tip-bot for Peter Zijlstra
2010-11-23 14:39 ` Oleg Nesterov
2010-11-23 15:05 ` Peter Zijlstra
2010-11-23 15:08 ` Oleg Nesterov
2010-11-23 17:16 ` Peter Zijlstra
2010-11-23 17:31 ` Oleg Nesterov
2010-11-23 10:23 ` [tip:sched/core] sched: Add some clock info to sched_debug tip-bot for Peter Zijlstra
2010-11-23 19:51 ` [tip:perf/urgent] perf record: Handle restrictive permissions in /proc/{kallsyms,modules} tip-bot for Arnaldo Carvalho de Melo
2010-11-26 15:00 ` [tip:perf/core] perf: Fix inherit vs. context rotation bug tip-bot for Thomas Gleixner
2010-11-28 4:36 ` Rakib Mullick
2010-11-26 15:01 ` [tip:perf/core] perf: Fix the software context switch counter tip-bot for Peter Zijlstra
2010-11-26 15:04 ` [tip:perf/core] perf: Ignore non-sampling overflows tip-bot for Peter Zijlstra
2010-11-26 19:20 ` Francis Moreau
2010-11-28 8:33 ` [tip:perf/core] perf record: Add option to disable collecting build-ids tip-bot for Arnaldo Carvalho de Melo
2010-11-29 10:22 ` Stephane Eranian
2010-11-29 15:14 ` Arnaldo Carvalho de Melo
2010-11-28 8:34 ` [tip:perf/core] perf events: Default to using event__process_lost tip-bot for Arnaldo Carvalho de Melo
2010-12-07 7:06 ` [tip:perf/urgent] perf record: Fix eternal wait for stillborn child tip-bot for Arnaldo Carvalho de Melo
2010-12-08 20:39 ` [tip:perf/urgent] perf: Fix duplicate events with multiple-pmu vs software events tip-bot for Peter Zijlstra
2010-12-08 20:42 ` [tip:perf/core] perf, amd: Remove the nb lock tip-bot for Peter Zijlstra
2010-12-08 20:42 ` [tip:perf/core] perf: Stop all counters on reboot tip-bot for Peter Zijlstra
2010-12-09 23:39 ` [tip:perf/core] perf session: Remove unneeded dump_printf calls tip-bot for Arnaldo Carvalho de Melo
2010-12-16 12:31 ` [tip:perf/core] perf, x86: Detect broken BIOSes that corrupt the PMU tip-bot for Peter Zijlstra
2010-12-16 12:33 ` [tip:perf/core] perf, x86: Provide a PEBS capable cycle event tip-bot for Peter Zijlstra
2010-12-22 11:28 ` [tip:perf/urgent] perf buildid-list: Fix error return for success tip-bot for Arnaldo Carvalho de Melo
2010-12-25 8:57 ` [tip:perf/core] perf symbols: Improve kallsyms symbol end addr calculation tip-bot for Arnaldo Carvalho de Melo
2010-12-25 8:58 ` [tip:perf/core] perf test: Look forward for symbol aliases tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:19 ` [tip:perf/core] perf script: Finish the rename from trace to script tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:19 ` [tip:perf/core] perf record: Fix use of sample_id_all userspace with !sample_id_all kernels tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:19 ` [tip:perf/core] perf script: Fix event ordering settings to work with older kernels tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:21 ` tip-bot for Arnaldo Carvalho de Melo [this message]
2011-01-04 8:21 ` [tip:perf/core] perf evsel: Adopt MATCH_EVENT macro from 'stat' tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:22 ` [tip:perf/core] perf util: Move do_read from session to util tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:22 ` [tip:perf/core] perf evsel: Delete the event selectors at exit tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:23 ` [tip:perf/core] perf evsel: Steal the counter reading routines from stat tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:23 ` [tip:perf/core] perf evsel: Introduce per cpu and per thread open helpers tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:24 ` [tip:perf/core] perf tools: Refactor cpumap to hold nr and the map tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:24 ` [tip:perf/core] perf tools: Refactor all_tids " tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:25 ` [tip:perf/core] perf evsel: Use {cpu,thread}_map to shorten list of parameters tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:25 ` [tip:perf/core] perf evsel: Auto allocate resources needed for some methods tip-bot for Arnaldo Carvalho de Melo
2011-01-04 8:26 ` [tip:perf/core] perf test: Add test for counting open syscalls tip-bot for Arnaldo Carvalho de Melo
2011-01-05 17:36 ` [tip:perf/core] perf test: Clarify some error reports in the open syscall test tip-bot for Arnaldo Carvalho de Melo
2011-01-05 17:37 ` [tip:perf/core] perf session: Warn about errors when processing pipe events too tip-bot for Arnaldo Carvalho de Melo
2011-01-05 17:37 ` [tip:perf/core] perf script: Use the default lost event handler tip-bot for Arnaldo Carvalho de Melo
2011-01-05 17:38 ` [tip:perf/core] perf script: Make some lists static tip-bot for Arnaldo Carvalho de Melo
2011-01-11 11:09 ` [tip:perf/urgent] perf sched: Fix allocation result check tip-bot for Arnaldo Carvalho de Melo
2011-01-11 11:10 ` [tip:perf/urgent] perf tools: Emit clearer message for sys_perf_event_open ENOENT return tip-bot for Arnaldo Carvalho de Melo
2011-01-11 11:11 ` [tip:perf/urgent] perf evsel: Support perf_evsel__open(cpus > 1 && threads > 1) tip-bot for Arnaldo Carvalho de Melo
2011-01-11 11:11 ` [tip:perf/urgent] perf session: Fix infinite loop in __perf_session__process_events tip-bot for Arnaldo Carvalho de Melo
2011-01-12 10:51 ` [tip:perf/urgent] perf evsel: Fix order of event list deletion tip-bot for Arnaldo Carvalho de Melo
2011-01-12 10:52 ` [tip:perf/urgent] perf top: Fix annotate segv tip-bot for Arnaldo Carvalho de Melo
2011-01-12 10:52 ` [tip:perf/urgent] Revert "perf tools: Emit clearer message for sys_perf_event_open ENOENT return" tip-bot for Arnaldo Carvalho de Melo
2011-01-18 8:48 ` [tip:perf/urgent] perf tools: Fix handling of wildcards in tracepoint event selectors tip-bot for Arnaldo Carvalho de Melo
2011-01-18 19:06 ` [tip:perf/urgent] perf: Fix contexted inheritance tip-bot for Peter Zijlstra
2011-01-21 15:37 ` [tip:perf/urgent] perf: Annotate cpuctx->ctx.mutex to avoid a lockdep splat tip-bot for Peter Zijlstra
2011-01-23 18:00 ` [tip:perf/urgent] perf test: Fix build on older glibcs tip-bot for Arnaldo Carvalho de Melo
2011-01-23 18:01 ` [tip:perf/urgent] perf tools: Add missing header, fixes build tip-bot for Arnaldo Carvalho de Melo
2011-01-23 18:02 ` [tip:perf/urgent] perf tools: Fix build when using gcc 3.4.6 tip-bot for Arnaldo Carvalho de Melo
2011-01-23 18:02 ` [tip:perf/urgent] perf tools: Fix build by checking if extra warnings are supported tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:14 ` [tip:perf/core] perf evsel: Introduce perf_evlist tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:14 ` [tip:perf/core] perf evlist: Adopt the pollfd array tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:14 ` [tip:perf/core] perf evsel: Support event groups tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:15 ` [tip:perf/core] perf evsel: Allow specifying if the inherit bit should be set tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:15 ` [tip:perf/core] perf top: Use perf_evsel__open tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:15 ` [tip:perf/core] perf record: " tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:16 ` [tip:perf/core] perf evsel: Introduce mmap support tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:16 ` [tip:perf/core] perf record: Use struct perf_mmap and helpers tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:17 ` [tip:perf/core] perf record: Move perf_mmap__write_tail to perf.h tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:17 ` [tip:perf/core] perf evlist: Move the mmap array from perf_evsel tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:17 ` [tip:perf/core] perf record: Use perf_evlist__mmap tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:18 ` [tip:perf/core] perf tools: Add missing cpu_map__delete() tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:18 ` [tip:perf/core] perf test: Check counts on all cpus in test__open_syscall_event_on_all_cpus tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:19 ` [tip:perf/core] perf evlist: Steal mmap reading routine from 'perf top' tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:19 ` [tip:perf/core] perf test: Add test for the evlist mmap routines tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:21 ` [tip:perf/core] perf top: Add native_safe_halt to skip symbols tip-bot for Arnaldo Carvalho de Melo
2011-01-26 7:23 ` [tip:perf/core] perf tools: Pass the struct opt to the wildcard parsing routine tip-bot for Arnaldo Carvalho de Melo
2009-08-04 8:32 ` [patch] perf tools: allow top users to switch between weighted and individual counter display Ingo Molnar
2009-08-04 8:46 ` Mike Galbraith
2009-08-04 8:56 ` Ingo Molnar
2009-08-04 11:36 ` [tip:perfcounters/core] perf top: Improve interactive key handling tip-bot for Mike Galbraith
2009-08-02 13:11 ` [tip:perfcounters/core] perf_counter tools: Allow top users to switch between weighted and individual counter display tip-bot for Mike Galbraith
2009-11-12 10:07 [patch] sched: fix/add missing update_rq_clock() calls Mike Galbraith
2009-11-12 11:01 ` Peter Zijlstra
2009-11-12 11:27 ` Ingo Molnar
2009-11-12 11:29 ` Peter Zijlstra
2009-11-12 11:34 ` Ingo Molnar
2009-11-12 11:36 ` Peter Zijlstra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=tip-69aad6f1ee69546dea8535ab8f3da9f445d57328@git.kernel.org \
--to=acme@redhat.com \
--cc=efault@gmx.de \
--cc=eranian@google.com \
--cc=fweisbec@gmail.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=paulus@samba.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=tzanussi@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).