From: tip-bot for Peter Zijlstra <a.p.zijlstra@chello.nl>
To: linux-tip-commits@vger.kernel.org
Cc: mingo@redhat.com, dengcheng.zhu@gmail.com,
a.p.zijlstra@chello.nl, yanmin_zhang@linux.intel.com,
gorcunov@gmail.com, fweisbec@gmail.com, robert.richter@amd.com,
ming.m.lin@intel.com, tglx@linutronix.de, hpa@zytor.com,
paulus@samba.org, linux-kernel@vger.kernel.org,
eranian@googlemail.com, will.deacon@arm.com, lethal@linux-sh.org,
davem@davemloft.net, mingo@elte.hu, mcree@orcon.net.nz
Subject: [tip:perf/core] perf: Rework the PMU methods
Date: Thu, 9 Sep 2010 19:50:07 GMT [thread overview]
Message-ID: <tip-a4eaf7f14675cb512d69f0c928055e73d0c6d252@git.kernel.org> (raw)
In-Reply-To: <new-submission>
Commit-ID: a4eaf7f14675cb512d69f0c928055e73d0c6d252
Gitweb: http://git.kernel.org/tip/a4eaf7f14675cb512d69f0c928055e73d0c6d252
Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
AuthorDate: Wed, 16 Jun 2010 14:37:10 +0200
Committer: Ingo Molnar <mingo@elte.hu>
CommitDate: Thu, 9 Sep 2010 20:46:30 +0200
perf: Rework the PMU methods
Replace pmu::{enable,disable,start,stop,unthrottle} with
pmu::{add,del,start,stop}, all of which take a flags argument.
The new interface extends the capability to stop a counter while
keeping it scheduled on the PMU. We replace the throttled state with
the generic stopped state.
This also allows us to efficiently stop/start counters over certain
code paths (like IRQ handlers).
It also allows scheduling a counter without it starting, allowing for
a generic frozen state (useful for rotating stopped counters).
The stopped state is implemented in two different ways, depending on
how the architecture implemented the throttled state:
1) We disable the counter:
a) the pmu has per-counter enable bits, we flip that
b) we program a NOP event, preserving the counter state
2) We store the counter state and ignore all read/overflow events
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: paulus <paulus@samba.org>
Cc: stephane eranian <eranian@googlemail.com>
Cc: Robert Richter <robert.richter@amd.com>
Cc: Will Deacon <will.deacon@arm.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Lin Ming <ming.m.lin@intel.com>
Cc: Yanmin <yanmin_zhang@linux.intel.com>
Cc: Deng-Cheng Zhu <dengcheng.zhu@gmail.com>
Cc: David Miller <davem@davemloft.net>
Cc: Michael Cree <mcree@orcon.net.nz>
LKML-Reference: <new-submission>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
---
arch/alpha/kernel/perf_event.c | 71 +++++++++++----
arch/arm/kernel/perf_event.c | 96 +++++++++++++-------
arch/powerpc/kernel/perf_event.c | 105 ++++++++++++++--------
arch/powerpc/kernel/perf_event_fsl_emb.c | 107 ++++++++++++++---------
arch/sh/kernel/perf_event.c | 75 +++++++++++-----
arch/sparc/kernel/perf_event.c | 109 ++++++++++++++---------
arch/x86/kernel/cpu/perf_event.c | 106 +++++++++++++---------
arch/x86/kernel/cpu/perf_event_intel.c | 2 +-
arch/x86/kernel/cpu/perf_event_intel_ds.c | 2 +-
include/linux/ftrace_event.h | 4 +-
include/linux/perf_event.h | 54 +++++++++---
kernel/hw_breakpoint.c | 29 ++++++-
kernel/perf_event.c | 140 +++++++++++++++--------------
kernel/trace/trace_event_perf.c | 7 +-
14 files changed, 576 insertions(+), 331 deletions(-)
diff --git a/arch/alpha/kernel/perf_event.c b/arch/alpha/kernel/perf_event.c
index 3e26073..380ef02 100644
--- a/arch/alpha/kernel/perf_event.c
+++ b/arch/alpha/kernel/perf_event.c
@@ -307,7 +307,7 @@ again:
new_raw_count) != prev_raw_count)
goto again;
- delta = (new_raw_count - (prev_raw_count & alpha_pmu->pmc_count_mask[idx])) + ovf;
+ delta = (new_raw_count - (prev_raw_count & alpha_pmu->pmc_count_mask[idx])) + ovf;
/* It is possible on very rare occasions that the PMC has overflowed
* but the interrupt is yet to come. Detect and fix this situation.
@@ -402,14 +402,13 @@ static void maybe_change_configuration(struct cpu_hw_events *cpuc)
struct hw_perf_event *hwc = &pe->hw;
int idx = hwc->idx;
- if (cpuc->current_idx[j] != PMC_NO_INDEX) {
- cpuc->idx_mask |= (1<<cpuc->current_idx[j]);
- continue;
+ if (cpuc->current_idx[j] == PMC_NO_INDEX) {
+ alpha_perf_event_set_period(pe, hwc, idx);
+ cpuc->current_idx[j] = idx;
}
- alpha_perf_event_set_period(pe, hwc, idx);
- cpuc->current_idx[j] = idx;
- cpuc->idx_mask |= (1<<cpuc->current_idx[j]);
+ if (!(hwc->state & PERF_HES_STOPPED))
+ cpuc->idx_mask |= (1<<cpuc->current_idx[j]);
}
cpuc->config = cpuc->event[0]->hw.config_base;
}
@@ -420,7 +419,7 @@ static void maybe_change_configuration(struct cpu_hw_events *cpuc)
* - this function is called from outside this module via the pmu struct
* returned from perf event initialisation.
*/
-static int alpha_pmu_enable(struct perf_event *event)
+static int alpha_pmu_add(struct perf_event *event, int flags)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
int n0;
@@ -455,6 +454,10 @@ static int alpha_pmu_enable(struct perf_event *event)
}
}
+ hwc->state = PERF_HES_UPTODATE;
+ if (!(flags & PERF_EF_START))
+ hwc->state |= PERF_HES_STOPPED;
+
local_irq_restore(flags);
perf_pmu_enable(event->pmu);
@@ -467,7 +470,7 @@ static int alpha_pmu_enable(struct perf_event *event)
* - this function is called from outside this module via the pmu struct
* returned from perf event initialisation.
*/
-static void alpha_pmu_disable(struct perf_event *event)
+static void alpha_pmu_del(struct perf_event *event, int flags)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
struct hw_perf_event *hwc = &event->hw;
@@ -514,13 +517,44 @@ static void alpha_pmu_read(struct perf_event *event)
}
-static void alpha_pmu_unthrottle(struct perf_event *event)
+static void alpha_pmu_stop(struct perf_event *event, int flags)
{
struct hw_perf_event *hwc = &event->hw;
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
+ if (!(hwc->state & PERF_HES_STOPPED)) {
+ cpuc->idx_mask &= !(1UL<<hwc->idx);
+ hwc->state |= PERF_HES_STOPPED;
+ }
+
+ if ((flags & PERF_EF_UPDATE) && !(hwc->state & PERF_HES_UPTODATE)) {
+ alpha_perf_event_update(event, hwc, hwc->idx, 0);
+ hwc->state |= PERF_HES_UPTODATE;
+ }
+
+ if (cpuc->enabled)
+ wrperfmon(PERFMON_CMD_ENABLE, (1UL<<hwc->idx));
+}
+
+
+static void alpha_pmu_start(struct perf_event *event, int flags)
+{
+ struct hw_perf_event *hwc = &event->hw;
+ struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
+
+ if (WARN_ON_ONCE(!(hwc->state & PERF_HES_STOPPED)))
+ return;
+
+ if (flags & PERF_EF_RELOAD) {
+ WARN_ON_ONCE(!(hwc->state & PERF_HES_UPTODATE));
+ alpha_perf_event_set_period(event, hwc, hwc->idx);
+ }
+
+ hwc->state = 0;
+
cpuc->idx_mask |= 1UL<<hwc->idx;
- wrperfmon(PERFMON_CMD_ENABLE, (1UL<<hwc->idx));
+ if (cpuc->enabled)
+ wrperfmon(PERFMON_CMD_ENABLE, (1UL<<hwc->idx));
}
@@ -671,7 +705,7 @@ static int alpha_pmu_event_init(struct perf_event *event)
/*
* Main entry point - enable HW performance counters.
*/
-static void alpha_pmu_pmu_enable(struct pmu *pmu)
+static void alpha_pmu_enable(struct pmu *pmu)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
@@ -697,7 +731,7 @@ static void alpha_pmu_pmu_enable(struct pmu *pmu)
* Main entry point - disable HW performance counters.
*/
-static void alpha_pmu_pmu_disable(struct pmu *pmu)
+static void alpha_pmu_disable(struct pmu *pmu)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
@@ -711,13 +745,14 @@ static void alpha_pmu_pmu_disable(struct pmu *pmu)
}
static struct pmu pmu = {
- .pmu_enable = alpha_pmu_pmu_enable,
- .pmu_disable = alpha_pmu_pmu_disable,
+ .pmu_enable = alpha_pmu_enable,
+ .pmu_disable = alpha_pmu_disable,
.event_init = alpha_pmu_event_init,
- .enable = alpha_pmu_enable,
- .disable = alpha_pmu_disable,
+ .add = alpha_pmu_add,
+ .del = alpha_pmu_del,
+ .start = alpha_pmu_start,
+ .stop = alpha_pmu_stop,
.read = alpha_pmu_read,
- .unthrottle = alpha_pmu_unthrottle,
};
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
index 3343f3f..448cfa6 100644
--- a/arch/arm/kernel/perf_event.c
+++ b/arch/arm/kernel/perf_event.c
@@ -221,46 +221,56 @@ again:
}
static void
-armpmu_disable(struct perf_event *event)
+armpmu_read(struct perf_event *event)
{
- struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
struct hw_perf_event *hwc = &event->hw;
- int idx = hwc->idx;
-
- WARN_ON(idx < 0);
-
- clear_bit(idx, cpuc->active_mask);
- armpmu->disable(hwc, idx);
-
- barrier();
- armpmu_event_update(event, hwc, idx);
- cpuc->events[idx] = NULL;
- clear_bit(idx, cpuc->used_mask);
+ /* Don't read disabled counters! */
+ if (hwc->idx < 0)
+ return;
- perf_event_update_userpage(event);
+ armpmu_event_update(event, hwc, hwc->idx);
}
static void
-armpmu_read(struct perf_event *event)
+armpmu_stop(struct perf_event *event, int flags)
{
struct hw_perf_event *hwc = &event->hw;
- /* Don't read disabled counters! */
- if (hwc->idx < 0)
+ if (!armpmu)
return;
- armpmu_event_update(event, hwc, hwc->idx);
+ /*
+ * ARM pmu always has to update the counter, so ignore
+ * PERF_EF_UPDATE, see comments in armpmu_start().
+ */
+ if (!(hwc->state & PERF_HES_STOPPED)) {
+ armpmu->disable(hwc, hwc->idx);
+ barrier(); /* why? */
+ armpmu_event_update(event, hwc, hwc->idx);
+ hwc->state |= PERF_HES_STOPPED | PERF_HES_UPTODATE;
+ }
}
static void
-armpmu_unthrottle(struct perf_event *event)
+armpmu_start(struct perf_event *event, int flags)
{
struct hw_perf_event *hwc = &event->hw;
+ if (!armpmu)
+ return;
+
+ /*
+ * ARM pmu always has to reprogram the period, so ignore
+ * PERF_EF_RELOAD, see the comment below.
+ */
+ if (flags & PERF_EF_RELOAD)
+ WARN_ON_ONCE(!(hwc->state & PERF_HES_UPTODATE));
+
+ hwc->state = 0;
/*
* Set the period again. Some counters can't be stopped, so when we
- * were throttled we simply disabled the IRQ source and the counter
+ * were stopped we simply disabled the IRQ source and the counter
* may have been left counting. If we don't do this step then we may
* get an interrupt too soon or *way* too late if the overflow has
* happened since disabling.
@@ -269,8 +279,25 @@ armpmu_unthrottle(struct perf_event *event)
armpmu->enable(hwc, hwc->idx);
}
+static void
+armpmu_del(struct perf_event *event, int flags)
+{
+ struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
+ struct hw_perf_event *hwc = &event->hw;
+ int idx = hwc->idx;
+
+ WARN_ON(idx < 0);
+
+ clear_bit(idx, cpuc->active_mask);
+ armpmu_stop(event, PERF_EF_UPDATE);
+ cpuc->events[idx] = NULL;
+ clear_bit(idx, cpuc->used_mask);
+
+ perf_event_update_userpage(event);
+}
+
static int
-armpmu_enable(struct perf_event *event)
+armpmu_add(struct perf_event *event, int flags)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
struct hw_perf_event *hwc = &event->hw;
@@ -295,11 +322,9 @@ armpmu_enable(struct perf_event *event)
cpuc->events[idx] = event;
set_bit(idx, cpuc->active_mask);
- /* Set the period for the event. */
- armpmu_event_set_period(event, hwc, idx);
-
- /* Enable the event. */
- armpmu->enable(hwc, idx);
+ hwc->state = PERF_HES_STOPPED | PERF_HES_UPTODATE;
+ if (flags & PERF_EF_START)
+ armpmu_start(event, PERF_EF_RELOAD);
/* Propagate our changes to the userspace mapping. */
perf_event_update_userpage(event);
@@ -534,7 +559,7 @@ static int armpmu_event_init(struct perf_event *event)
return err;
}
-static void armpmu_pmu_enable(struct pmu *pmu)
+static void armpmu_enable(struct pmu *pmu)
{
/* Enable all of the perf events on hardware. */
int idx;
@@ -555,20 +580,21 @@ static void armpmu_pmu_enable(struct pmu *pmu)
armpmu->start();
}
-static void armpmu_pmu_disable(struct pmu *pmu)
+static void armpmu_disable(struct pmu *pmu)
{
if (armpmu)
armpmu->stop();
}
static struct pmu pmu = {
- .pmu_enable = armpmu_pmu_enable,
- .pmu_disable= armpmu_pmu_disable,
- .event_init = armpmu_event_init,
- .enable = armpmu_enable,
- .disable = armpmu_disable,
- .unthrottle = armpmu_unthrottle,
- .read = armpmu_read,
+ .pmu_enable = armpmu_enable,
+ .pmu_disable = armpmu_disable,
+ .event_init = armpmu_event_init,
+ .add = armpmu_add,
+ .del = armpmu_del,
+ .start = armpmu_start,
+ .stop = armpmu_stop,
+ .read = armpmu_read,
};
/*
diff --git a/arch/powerpc/kernel/perf_event.c b/arch/powerpc/kernel/perf_event.c
index deb84bb..9cb4924 100644
--- a/arch/powerpc/kernel/perf_event.c
+++ b/arch/powerpc/kernel/perf_event.c
@@ -402,6 +402,9 @@ static void power_pmu_read(struct perf_event *event)
{
s64 val, delta, prev;
+ if (event->hw.state & PERF_HES_STOPPED)
+ return;
+
if (!event->hw.idx)
return;
/*
@@ -517,7 +520,7 @@ static void write_mmcr0(struct cpu_hw_events *cpuhw, unsigned long mmcr0)
* Disable all events to prevent PMU interrupts and to allow
* events to be added or removed.
*/
-static void power_pmu_pmu_disable(struct pmu *pmu)
+static void power_pmu_disable(struct pmu *pmu)
{
struct cpu_hw_events *cpuhw;
unsigned long flags;
@@ -565,7 +568,7 @@ static void power_pmu_pmu_disable(struct pmu *pmu)
* If we were previously disabled and events were added, then
* put the new config on the PMU.
*/
-static void power_pmu_pmu_enable(struct pmu *pmu)
+static void power_pmu_enable(struct pmu *pmu)
{
struct perf_event *event;
struct cpu_hw_events *cpuhw;
@@ -672,6 +675,8 @@ static void power_pmu_pmu_enable(struct pmu *pmu)
}
local64_set(&event->hw.prev_count, val);
event->hw.idx = idx;
+ if (event->hw.state & PERF_HES_STOPPED)
+ val = 0;
write_pmc(idx, val);
perf_event_update_userpage(event);
}
@@ -727,7 +732,7 @@ static int collect_events(struct perf_event *group, int max_count,
* re-enable the PMU in order to get hw_perf_enable to do the
* actual work of reconfiguring the PMU.
*/
-static int power_pmu_enable(struct perf_event *event)
+static int power_pmu_add(struct perf_event *event, int ef_flags)
{
struct cpu_hw_events *cpuhw;
unsigned long flags;
@@ -749,6 +754,9 @@ static int power_pmu_enable(struct perf_event *event)
cpuhw->events[n0] = event->hw.config;
cpuhw->flags[n0] = event->hw.event_base;
+ if (!(ef_flags & PERF_EF_START))
+ event->hw.state = PERF_HES_STOPPED | PERF_HES_UPTODATE;
+
/*
* If group events scheduling transaction was started,
* skip the schedulability test here, it will be peformed
@@ -777,7 +785,7 @@ nocheck:
/*
* Remove a event from the PMU.
*/
-static void power_pmu_disable(struct perf_event *event)
+static void power_pmu_del(struct perf_event *event, int ef_flags)
{
struct cpu_hw_events *cpuhw;
long i;
@@ -826,27 +834,53 @@ static void power_pmu_disable(struct perf_event *event)
}
/*
- * Re-enable interrupts on a event after they were throttled
- * because they were coming too fast.
+ * POWER-PMU does not support disabling individual counters, hence
+ * program their cycle counter to their max value and ignore the interrupts.
*/
-static void power_pmu_unthrottle(struct perf_event *event)
+
+static void power_pmu_start(struct perf_event *event, int ef_flags)
{
- s64 val, left;
unsigned long flags;
+ s64 left;
if (!event->hw.idx || !event->hw.sample_period)
return;
+
+ if (!(event->hw.state & PERF_HES_STOPPED))
+ return;
+
+ if (ef_flags & PERF_EF_RELOAD)
+ WARN_ON_ONCE(!(event->hw.state & PERF_HES_UPTODATE));
+
+ local_irq_save(flags);
+ perf_pmu_disable(event->pmu);
+
+ event->hw.state = 0;
+ left = local64_read(&event->hw.period_left);
+ write_pmc(event->hw.idx, left);
+
+ perf_event_update_userpage(event);
+ perf_pmu_enable(event->pmu);
+ local_irq_restore(flags);
+}
+
+static void power_pmu_stop(struct perf_event *event, int ef_flags)
+{
+ unsigned long flags;
+
+ if (!event->hw.idx || !event->hw.sample_period)
+ return;
+
+ if (event->hw.state & PERF_HES_STOPPED)
+ return;
+
local_irq_save(flags);
perf_pmu_disable(event->pmu);
+
power_pmu_read(event);
- left = event->hw.sample_period;
- event->hw.last_period = left;
- val = 0;
- if (left < 0x80000000L)
- val = 0x80000000L - left;
- write_pmc(event->hw.idx, val);
- local64_set(&event->hw.prev_count, val);
- local64_set(&event->hw.period_left, left);
+ event->hw.state |= PERF_HES_STOPPED | PERF_HES_UPTODATE;
+ write_pmc(event->hw.idx, 0);
+
perf_event_update_userpage(event);
perf_pmu_enable(event->pmu);
local_irq_restore(flags);
@@ -1131,13 +1165,14 @@ static int power_pmu_event_init(struct perf_event *event)
}
struct pmu power_pmu = {
- .pmu_enable = power_pmu_pmu_enable,
- .pmu_disable = power_pmu_pmu_disable,
+ .pmu_enable = power_pmu_enable,
+ .pmu_disable = power_pmu_disable,
.event_init = power_pmu_event_init,
- .enable = power_pmu_enable,
- .disable = power_pmu_disable,
+ .add = power_pmu_add,
+ .del = power_pmu_del,
+ .start = power_pmu_start,
+ .stop = power_pmu_stop,
.read = power_pmu_read,
- .unthrottle = power_pmu_unthrottle,
.start_txn = power_pmu_start_txn,
.cancel_txn = power_pmu_cancel_txn,
.commit_txn = power_pmu_commit_txn,
@@ -1155,6 +1190,11 @@ static void record_and_restart(struct perf_event *event, unsigned long val,
s64 prev, delta, left;
int record = 0;
+ if (event->hw.state & PERF_HES_STOPPED) {
+ write_pmc(event->hw.idx, 0);
+ return;
+ }
+
/* we don't have to worry about interrupts here */
prev = local64_read(&event->hw.prev_count);
delta = (val - prev) & 0xfffffffful;
@@ -1177,6 +1217,11 @@ static void record_and_restart(struct perf_event *event, unsigned long val,
val = 0x80000000LL - left;
}
+ write_pmc(event->hw.idx, val);
+ local64_set(&event->hw.prev_count, val);
+ local64_set(&event->hw.period_left, left);
+ perf_event_update_userpage(event);
+
/*
* Finally record data if requested.
*/
@@ -1189,23 +1234,9 @@ static void record_and_restart(struct perf_event *event, unsigned long val,
if (event->attr.sample_type & PERF_SAMPLE_ADDR)
perf_get_data_addr(regs, &data.addr);
- if (perf_event_overflow(event, nmi, &data, regs)) {
- /*
- * Interrupts are coming too fast - throttle them
- * by setting the event to 0, so it will be
- * at least 2^30 cycles until the next interrupt
- * (assuming each event counts at most 2 counts
- * per cycle).
- */
- val = 0;
- left = ~0ULL >> 1;
- }
+ if (perf_event_overflow(event, nmi, &data, regs))
+ power_pmu_stop(event, 0);
}
-
- write_pmc(event->hw.idx, val);
- local64_set(&event->hw.prev_count, val);
- local64_set(&event->hw.period_left, left);
- perf_event_update_userpage(event);
}
/*
diff --git a/arch/powerpc/kernel/perf_event_fsl_emb.c b/arch/powerpc/kernel/perf_event_fsl_emb.c
index 84b1974..7ecca59 100644
--- a/arch/powerpc/kernel/perf_event_fsl_emb.c
+++ b/arch/powerpc/kernel/perf_event_fsl_emb.c
@@ -156,6 +156,9 @@ static void fsl_emb_pmu_read(struct perf_event *event)
{
s64 val, delta, prev;
+ if (event->hw.state & PERF_HES_STOPPED)
+ return;
+
/*
* Performance monitor interrupts come even when interrupts
* are soft-disabled, as long as interrupts are hard-enabled.
@@ -177,7 +180,7 @@ static void fsl_emb_pmu_read(struct perf_event *event)
* Disable all events to prevent PMU interrupts and to allow
* events to be added or removed.
*/
-static void fsl_emb_pmu_pmu_disable(struct pmu *pmu)
+static void fsl_emb_pmu_disable(struct pmu *pmu)
{
struct cpu_hw_events *cpuhw;
unsigned long flags;
@@ -216,7 +219,7 @@ static void fsl_emb_pmu_pmu_disable(struct pmu *pmu)
* If we were previously disabled and events were added, then
* put the new config on the PMU.
*/
-static void fsl_emb_pmu_pmu_enable(struct pmu *pmu)
+static void fsl_emb_pmu_enable(struct pmu *pmu)
{
struct cpu_hw_events *cpuhw;
unsigned long flags;
@@ -263,7 +266,7 @@ static int collect_events(struct perf_event *group, int max_count,
}
/* context locked on entry */
-static int fsl_emb_pmu_enable(struct perf_event *event)
+static int fsl_emb_pmu_add(struct perf_event *event, int flags)
{
struct cpu_hw_events *cpuhw;
int ret = -EAGAIN;
@@ -302,6 +305,12 @@ static int fsl_emb_pmu_enable(struct perf_event *event)
val = 0x80000000L - left;
}
local64_set(&event->hw.prev_count, val);
+
+ if (!(flags & PERF_EF_START)) {
+ event->hw.state = PERF_HES_STOPPED | PERF_HES_UPTODATE;
+ val = 0;
+ }
+
write_pmc(i, val);
perf_event_update_userpage(event);
@@ -316,7 +325,7 @@ static int fsl_emb_pmu_enable(struct perf_event *event)
}
/* context locked on entry */
-static void fsl_emb_pmu_disable(struct perf_event *event)
+static void fsl_emb_pmu_del(struct perf_event *event, int flags)
{
struct cpu_hw_events *cpuhw;
int i = event->hw.idx;
@@ -353,30 +362,49 @@ static void fsl_emb_pmu_disable(struct perf_event *event)
put_cpu_var(cpu_hw_events);
}
-/*
- * Re-enable interrupts on a event after they were throttled
- * because they were coming too fast.
- *
- * Context is locked on entry, but perf is not disabled.
- */
-static void fsl_emb_pmu_unthrottle(struct perf_event *event)
+static void fsl_emb_pmu_start(struct perf_event *event, int ef_flags)
+{
+ unsigned long flags;
+ s64 left;
+
+ if (event->hw.idx < 0 || !event->hw.sample_period)
+ return;
+
+ if (!(event->hw.state & PERF_HES_STOPPED))
+ return;
+
+ if (ef_flags & PERF_EF_RELOAD)
+ WARN_ON_ONCE(!(event->hw.state & PERF_HES_UPTODATE));
+
+ local_irq_save(flags);
+ perf_pmu_disable(event->pmu);
+
+ event->hw.state = 0;
+ left = local64_read(&event->hw.period_left);
+ write_pmc(event->hw.idx, left);
+
+ perf_event_update_userpage(event);
+ perf_pmu_enable(event->pmu);
+ local_irq_restore(flags);
+}
+
+static void fsl_emb_pmu_stop(struct perf_event *event, int ef_flags)
{
- s64 val, left;
unsigned long flags;
if (event->hw.idx < 0 || !event->hw.sample_period)
return;
+
+ if (event->hw.state & PERF_HES_STOPPED)
+ return;
+
local_irq_save(flags);
perf_pmu_disable(event->pmu);
+
fsl_emb_pmu_read(event);
- left = event->hw.sample_period;
- event->hw.last_period = left;
- val = 0;
- if (left < 0x80000000L)
- val = 0x80000000L - left;
- write_pmc(event->hw.idx, val);
- local64_set(&event->hw.prev_count, val);
- local64_set(&event->hw.period_left, left);
+ event->hw.state |= PERF_HES_STOPPED | PERF_HES_UPTODATE;
+ write_pmc(event->hw.idx, 0);
+
perf_event_update_userpage(event);
perf_pmu_enable(event->pmu);
local_irq_restore(flags);
@@ -524,13 +552,14 @@ static int fsl_emb_pmu_event_init(struct perf_event *event)
}
static struct pmu fsl_emb_pmu = {
- .pmu_enable = fsl_emb_pmu_pmu_enable,
- .pmu_disable = fsl_emb_pmu_pmu_disable,
+ .pmu_enable = fsl_emb_pmu_enable,
+ .pmu_disable = fsl_emb_pmu_disable,
.event_init = fsl_emb_pmu_event_init,
- .enable = fsl_emb_pmu_enable,
- .disable = fsl_emb_pmu_disable,
+ .add = fsl_emb_pmu_add,
+ .del = fsl_emb_pmu_del,
+ .start = fsl_emb_pmu_start,
+ .stop = fsl_emb_pmu_stop,
.read = fsl_emb_pmu_read,
- .unthrottle = fsl_emb_pmu_unthrottle,
};
/*
@@ -545,6 +574,11 @@ static void record_and_restart(struct perf_event *event, unsigned long val,
s64 prev, delta, left;
int record = 0;
+ if (event->hw.state & PERF_HES_STOPPED) {
+ write_pmc(event->hw.idx, 0);
+ return;
+ }
+
/* we don't have to worry about interrupts here */
prev = local64_read(&event->hw.prev_count);
delta = (val - prev) & 0xfffffffful;
@@ -567,6 +601,11 @@ static void record_and_restart(struct perf_event *event, unsigned long val,
val = 0x80000000LL - left;
}
+ write_pmc(event->hw.idx, val);
+ local64_set(&event->hw.prev_count, val);
+ local64_set(&event->hw.period_left, left);
+ perf_event_update_userpage(event);
+
/*
* Finally record data if requested.
*/
@@ -576,23 +615,9 @@ static void record_and_restart(struct perf_event *event, unsigned long val,
perf_sample_data_init(&data, 0);
data.period = event->hw.last_period;
- if (perf_event_overflow(event, nmi, &data, regs)) {
- /*
- * Interrupts are coming too fast - throttle them
- * by setting the event to 0, so it will be
- * at least 2^30 cycles until the next interrupt
- * (assuming each event counts at most 2 counts
- * per cycle).
- */
- val = 0;
- left = ~0ULL >> 1;
- }
+ if (perf_event_overflow(event, nmi, &data, regs))
+ fsl_emb_pmu_stop(event, 0);
}
-
- write_pmc(event->hw.idx, val);
- local64_set(&event->hw.prev_count, val);
- local64_set(&event->hw.period_left, left);
- perf_event_update_userpage(event);
}
static void perf_event_interrupt(struct pt_regs *regs)
diff --git a/arch/sh/kernel/perf_event.c b/arch/sh/kernel/perf_event.c
index 4bbe190..cf39c48 100644
--- a/arch/sh/kernel/perf_event.c
+++ b/arch/sh/kernel/perf_event.c
@@ -206,26 +206,52 @@ again:
local64_add(delta, &event->count);
}
-static void sh_pmu_disable(struct perf_event *event)
+static void sh_pmu_stop(struct perf_event *event, int flags)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
struct hw_perf_event *hwc = &event->hw;
int idx = hwc->idx;
- clear_bit(idx, cpuc->active_mask);
- sh_pmu->disable(hwc, idx);
+ if (!(event->hw.state & PERF_HES_STOPPED)) {
+ sh_pmu->disable(hwc, idx);
+ cpuc->events[idx] = NULL;
+ event->hw.state |= PERF_HES_STOPPED;
+ }
- barrier();
+ if ((flags & PERF_EF_UPDATE) && !(event->hw.state & PERF_HES_UPTODATE)) {
+ sh_perf_event_update(event, &event->hw, idx);
+ event->hw.state |= PERF_HES_UPTODATE;
+ }
+}
- sh_perf_event_update(event, &event->hw, idx);
+static void sh_pmu_start(struct perf_event *event, int flags)
+{
+ struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
+ struct hw_perf_event *hwc = &event->hw;
+ int idx = hwc->idx;
- cpuc->events[idx] = NULL;
- clear_bit(idx, cpuc->used_mask);
+ if (WARN_ON_ONCE(idx == -1))
+ return;
+
+ if (flags & PERF_EF_RELOAD)
+ WARN_ON_ONCE(!(event->hw.state & PERF_HES_UPTODATE));
+
+ cpuc->events[idx] = event;
+ event->hw.state = 0;
+ sh_pmu->enable(hwc, idx);
+}
+
+static void sh_pmu_del(struct perf_event *event, int flags)
+{
+ struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
+
+ sh_pmu_stop(event, PERF_EF_UPDATE);
+ __clear_bit(event->hw.idx, cpuc->used_mask);
perf_event_update_userpage(event);
}
-static int sh_pmu_enable(struct perf_event *event)
+static int sh_pmu_add(struct perf_event *event, int flags)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
struct hw_perf_event *hwc = &event->hw;
@@ -234,21 +260,20 @@ static int sh_pmu_enable(struct perf_event *event)
perf_pmu_disable(event->pmu);
- if (test_and_set_bit(idx, cpuc->used_mask)) {
+ if (__test_and_set_bit(idx, cpuc->used_mask)) {
idx = find_first_zero_bit(cpuc->used_mask, sh_pmu->num_events);
if (idx == sh_pmu->num_events)
goto out;
- set_bit(idx, cpuc->used_mask);
+ __set_bit(idx, cpuc->used_mask);
hwc->idx = idx;
}
sh_pmu->disable(hwc, idx);
- cpuc->events[idx] = event;
- set_bit(idx, cpuc->active_mask);
-
- sh_pmu->enable(hwc, idx);
+ event->hw.state = PERF_HES_UPTODATE | PERF_HES_STOPPED;
+ if (flags & PERF_EF_START)
+ sh_pmu_start(event, PERF_EF_RELOAD);
perf_event_update_userpage(event);
ret = 0;
@@ -285,7 +310,7 @@ static int sh_pmu_event_init(struct perf_event *event)
return err;
}
-static void sh_pmu_pmu_enable(struct pmu *pmu)
+static void sh_pmu_enable(struct pmu *pmu)
{
if (!sh_pmu_initialized())
return;
@@ -293,7 +318,7 @@ static void sh_pmu_pmu_enable(struct pmu *pmu)
sh_pmu->enable_all();
}
-static void sh_pmu_pmu_disable(struct pmu *pmu)
+static void sh_pmu_disable(struct pmu *pmu)
{
if (!sh_pmu_initialized())
return;
@@ -302,11 +327,13 @@ static void sh_pmu_pmu_disable(struct pmu *pmu)
}
static struct pmu pmu = {
- .pmu_enable = sh_pmu_pmu_enable,
- .pmu_disable = sh_pmu_pmu_disable,
+ .pmu_enable = sh_pmu_enable,
+ .pmu_disable = sh_pmu_disable,
.event_init = sh_pmu_event_init,
- .enable = sh_pmu_enable,
- .disable = sh_pmu_disable,
+ .add = sh_pmu_add,
+ .del = sh_pmu_del,
+ .start = sh_pmu_start,
+ .stop = sh_pmu_stop,
.read = sh_pmu_read,
};
@@ -334,15 +361,15 @@ sh_pmu_notifier(struct notifier_block *self, unsigned long action, void *hcpu)
return NOTIFY_OK;
}
-int __cpuinit register_sh_pmu(struct sh_pmu *pmu)
+int __cpuinit register_sh_pmu(struct sh_pmu *_pmu)
{
if (sh_pmu)
return -EBUSY;
- sh_pmu = pmu;
+ sh_pmu = _pmu;
- pr_info("Performance Events: %s support registered\n", pmu->name);
+ pr_info("Performance Events: %s support registered\n", _pmu->name);
- WARN_ON(pmu->num_events > MAX_HWEVENTS);
+ WARN_ON(_pmu->num_events > MAX_HWEVENTS);
perf_pmu_register(&pmu);
perf_cpu_notifier(sh_pmu_notifier);
diff --git a/arch/sparc/kernel/perf_event.c b/arch/sparc/kernel/perf_event.c
index 37cae67..516be23 100644
--- a/arch/sparc/kernel/perf_event.c
+++ b/arch/sparc/kernel/perf_event.c
@@ -658,13 +658,16 @@ static u64 maybe_change_configuration(struct cpu_hw_events *cpuc, u64 pcr)
enc = perf_event_get_enc(cpuc->events[i]);
pcr &= ~mask_for_index(idx);
- pcr |= event_encoding(enc, idx);
+ if (hwc->state & PERF_HES_STOPPED)
+ pcr |= nop_for_index(idx);
+ else
+ pcr |= event_encoding(enc, idx);
}
out:
return pcr;
}
-static void sparc_pmu_pmu_enable(struct pmu *pmu)
+static void sparc_pmu_enable(struct pmu *pmu)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
u64 pcr;
@@ -691,7 +694,7 @@ static void sparc_pmu_pmu_enable(struct pmu *pmu)
pcr_ops->write(cpuc->pcr);
}
-static void sparc_pmu_pmu_disable(struct pmu *pmu)
+static void sparc_pmu_disable(struct pmu *pmu)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
u64 val;
@@ -710,10 +713,53 @@ static void sparc_pmu_pmu_disable(struct pmu *pmu)
pcr_ops->write(cpuc->pcr);
}
-static void sparc_pmu_disable(struct perf_event *event)
+static int active_event_index(struct cpu_hw_events *cpuc,
+ struct perf_event *event)
+{
+ int i;
+
+ for (i = 0; i < cpuc->n_events; i++) {
+ if (cpuc->event[i] == event)
+ break;
+ }
+ BUG_ON(i == cpuc->n_events);
+ return cpuc->current_idx[i];
+}
+
+static void sparc_pmu_start(struct perf_event *event, int flags)
+{
+ struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
+ int idx = active_event_index(cpuc, event);
+
+ if (flags & PERF_EF_RELOAD) {
+ WARN_ON_ONCE(!(event->hw.state & PERF_HES_UPTODATE));
+ sparc_perf_event_set_period(event, &event->hw, idx);
+ }
+
+ event->hw.state = 0;
+
+ sparc_pmu_enable_event(cpuc, &event->hw, idx);
+}
+
+static void sparc_pmu_stop(struct perf_event *event, int flags)
+{
+ struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
+ int idx = active_event_index(cpuc, event);
+
+ if (!(event->hw.state & PERF_HES_STOPPED)) {
+ sparc_pmu_disable_event(cpuc, &event->hw, idx);
+ event->hw.state |= PERF_HES_STOPPED;
+ }
+
+ if (!(event->hw.state & PERF_HES_UPTODATE) && (flags & PERF_EF_UPDATE)) {
+ sparc_perf_event_update(event, &event->hw, idx);
+ event->hw.state |= PERF_HES_UPTODATE;
+ }
+}
+
+static void sparc_pmu_del(struct perf_event *event, int _flags)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
- struct hw_perf_event *hwc = &event->hw;
unsigned long flags;
int i;
@@ -722,7 +768,10 @@ static void sparc_pmu_disable(struct perf_event *event)
for (i = 0; i < cpuc->n_events; i++) {
if (event == cpuc->event[i]) {
- int idx = cpuc->current_idx[i];
+ /* Absorb the final count and turn off the
+ * event.
+ */
+ sparc_pmu_stop(event, PERF_EF_UPDATE);
/* Shift remaining entries down into
* the existing slot.
@@ -734,13 +783,6 @@ static void sparc_pmu_disable(struct perf_event *event)
cpuc->current_idx[i];
}
- /* Absorb the final count and turn off the
- * event.
- */
- sparc_pmu_disable_event(cpuc, hwc, idx);
- barrier();
- sparc_perf_event_update(event, hwc, idx);
-
perf_event_update_userpage(event);
cpuc->n_events--;
@@ -752,19 +794,6 @@ static void sparc_pmu_disable(struct perf_event *event)
local_irq_restore(flags);
}
-static int active_event_index(struct cpu_hw_events *cpuc,
- struct perf_event *event)
-{
- int i;
-
- for (i = 0; i < cpuc->n_events; i++) {
- if (cpuc->event[i] == event)
- break;
- }
- BUG_ON(i == cpuc->n_events);
- return cpuc->current_idx[i];
-}
-
static void sparc_pmu_read(struct perf_event *event)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
@@ -774,15 +803,6 @@ static void sparc_pmu_read(struct perf_event *event)
sparc_perf_event_update(event, hwc, idx);
}
-static void sparc_pmu_unthrottle(struct perf_event *event)
-{
- struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
- int idx = active_event_index(cpuc, event);
- struct hw_perf_event *hwc = &event->hw;
-
- sparc_pmu_enable_event(cpuc, hwc, idx);
-}
-
static atomic_t active_events = ATOMIC_INIT(0);
static DEFINE_MUTEX(pmc_grab_mutex);
@@ -984,7 +1004,7 @@ static int collect_events(struct perf_event *group, int max_count,
return n;
}
-static int sparc_pmu_enable(struct perf_event *event)
+static int sparc_pmu_add(struct perf_event *event, int ef_flags)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
int n0, ret = -EAGAIN;
@@ -1001,6 +1021,10 @@ static int sparc_pmu_enable(struct perf_event *event)
cpuc->events[n0] = event->hw.event_base;
cpuc->current_idx[n0] = PIC_NO_INDEX;
+ event->hw.state = PERF_HES_UPTODATE;
+ if (!(ef_flags & PERF_EF_START))
+ event->hw.state |= PERF_HES_STOPPED;
+
/*
* If group events scheduling transaction was started,
* skip the schedulability test here, it will be peformed
@@ -1156,13 +1180,14 @@ static int sparc_pmu_commit_txn(struct pmu *pmu)
}
static struct pmu pmu = {
- .pmu_enable = sparc_pmu_pmu_enable,
- .pmu_disable = sparc_pmu_pmu_disable,
+ .pmu_enable = sparc_pmu_enable,
+ .pmu_disable = sparc_pmu_disable,
.event_init = sparc_pmu_event_init,
- .enable = sparc_pmu_enable,
- .disable = sparc_pmu_disable,
+ .add = sparc_pmu_add,
+ .del = sparc_pmu_del,
+ .start = sparc_pmu_start,
+ .stop = sparc_pmu_stop,
.read = sparc_pmu_read,
- .unthrottle = sparc_pmu_unthrottle,
.start_txn = sparc_pmu_start_txn,
.cancel_txn = sparc_pmu_cancel_txn,
.commit_txn = sparc_pmu_commit_txn,
@@ -1243,7 +1268,7 @@ static int __kprobes perf_event_nmi_handler(struct notifier_block *self,
continue;
if (perf_event_overflow(event, 1, &data, regs))
- sparc_pmu_disable_event(cpuc, hwc, idx);
+ sparc_pmu_stop(event, 0);
}
return NOTIFY_STOP;
diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
index 79705ac..dd6fec7 100644
--- a/arch/x86/kernel/cpu/perf_event.c
+++ b/arch/x86/kernel/cpu/perf_event.c
@@ -583,7 +583,7 @@ static void x86_pmu_disable_all(void)
}
}
-static void x86_pmu_pmu_disable(struct pmu *pmu)
+static void x86_pmu_disable(struct pmu *pmu)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
@@ -800,10 +800,10 @@ static inline int match_prev_assignment(struct hw_perf_event *hwc,
hwc->last_tag == cpuc->tags[i];
}
-static int x86_pmu_start(struct perf_event *event);
-static void x86_pmu_stop(struct perf_event *event);
+static void x86_pmu_start(struct perf_event *event, int flags);
+static void x86_pmu_stop(struct perf_event *event, int flags);
-static void x86_pmu_pmu_enable(struct pmu *pmu)
+static void x86_pmu_enable(struct pmu *pmu)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
struct perf_event *event;
@@ -839,7 +839,14 @@ static void x86_pmu_pmu_enable(struct pmu *pmu)
match_prev_assignment(hwc, cpuc, i))
continue;
- x86_pmu_stop(event);
+ /*
+ * Ensure we don't accidentally enable a stopped
+ * counter simply because we rescheduled.
+ */
+ if (hwc->state & PERF_HES_STOPPED)
+ hwc->state |= PERF_HES_ARCH;
+
+ x86_pmu_stop(event, PERF_EF_UPDATE);
}
for (i = 0; i < cpuc->n_events; i++) {
@@ -851,7 +858,10 @@ static void x86_pmu_pmu_enable(struct pmu *pmu)
else if (i < n_running)
continue;
- x86_pmu_start(event);
+ if (hwc->state & PERF_HES_ARCH)
+ continue;
+
+ x86_pmu_start(event, PERF_EF_RELOAD);
}
cpuc->n_added = 0;
perf_events_lapic_init();
@@ -952,15 +962,12 @@ static void x86_pmu_enable_event(struct perf_event *event)
}
/*
- * activate a single event
+ * Add a single event to the PMU.
*
* The event is added to the group of enabled events
* but only if it can be scehduled with existing events.
- *
- * Called with PMU disabled. If successful and return value 1,
- * then guaranteed to call perf_enable() and hw_perf_enable()
*/
-static int x86_pmu_enable(struct perf_event *event)
+static int x86_pmu_add(struct perf_event *event, int flags)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
struct hw_perf_event *hwc;
@@ -975,10 +982,14 @@ static int x86_pmu_enable(struct perf_event *event)
if (ret < 0)
goto out;
+ hwc->state = PERF_HES_UPTODATE | PERF_HES_STOPPED;
+ if (!(flags & PERF_EF_START))
+ hwc->state |= PERF_HES_ARCH;
+
/*
* If group events scheduling transaction was started,
* skip the schedulability test here, it will be peformed
- * at commit time(->commit_txn) as a whole
+ * at commit time (->commit_txn) as a whole
*/
if (cpuc->group_flag & PERF_EVENT_TXN)
goto done_collect;
@@ -1003,27 +1014,28 @@ out:
return ret;
}
-static int x86_pmu_start(struct perf_event *event)
+static void x86_pmu_start(struct perf_event *event, int flags)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
int idx = event->hw.idx;
- if (idx == -1)
- return -EAGAIN;
+ if (WARN_ON_ONCE(!(event->hw.state & PERF_HES_STOPPED)))
+ return;
+
+ if (WARN_ON_ONCE(idx == -1))
+ return;
+
+ if (flags & PERF_EF_RELOAD) {
+ WARN_ON_ONCE(!(event->hw.state & PERF_HES_UPTODATE));
+ x86_perf_event_set_period(event);
+ }
+
+ event->hw.state = 0;
- x86_perf_event_set_period(event);
cpuc->events[idx] = event;
__set_bit(idx, cpuc->active_mask);
x86_pmu.enable(event);
perf_event_update_userpage(event);
-
- return 0;
-}
-
-static void x86_pmu_unthrottle(struct perf_event *event)
-{
- int ret = x86_pmu_start(event);
- WARN_ON_ONCE(ret);
}
void perf_event_print_debug(void)
@@ -1080,27 +1092,29 @@ void perf_event_print_debug(void)
local_irq_restore(flags);
}
-static void x86_pmu_stop(struct perf_event *event)
+static void x86_pmu_stop(struct perf_event *event, int flags)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
struct hw_perf_event *hwc = &event->hw;
- int idx = hwc->idx;
-
- if (!__test_and_clear_bit(idx, cpuc->active_mask))
- return;
-
- x86_pmu.disable(event);
- /*
- * Drain the remaining delta count out of a event
- * that we are disabling:
- */
- x86_perf_event_update(event);
+ if (__test_and_clear_bit(hwc->idx, cpuc->active_mask)) {
+ x86_pmu.disable(event);
+ cpuc->events[hwc->idx] = NULL;
+ WARN_ON_ONCE(hwc->state & PERF_HES_STOPPED);
+ hwc->state |= PERF_HES_STOPPED;
+ }
- cpuc->events[idx] = NULL;
+ if ((flags & PERF_EF_UPDATE) && !(hwc->state & PERF_HES_UPTODATE)) {
+ /*
+ * Drain the remaining delta count out of a event
+ * that we are disabling:
+ */
+ x86_perf_event_update(event);
+ hwc->state |= PERF_HES_UPTODATE;
+ }
}
-static void x86_pmu_disable(struct perf_event *event)
+static void x86_pmu_del(struct perf_event *event, int flags)
{
struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
int i;
@@ -1113,7 +1127,7 @@ static void x86_pmu_disable(struct perf_event *event)
if (cpuc->group_flag & PERF_EVENT_TXN)
return;
- x86_pmu_stop(event);
+ x86_pmu_stop(event, PERF_EF_UPDATE);
for (i = 0; i < cpuc->n_events; i++) {
if (event == cpuc->event_list[i]) {
@@ -1165,7 +1179,7 @@ static int x86_pmu_handle_irq(struct pt_regs *regs)
continue;
if (perf_event_overflow(event, 1, &data, regs))
- x86_pmu_stop(event);
+ x86_pmu_stop(event, 0);
}
if (handled)
@@ -1605,15 +1619,17 @@ int x86_pmu_event_init(struct perf_event *event)
}
static struct pmu pmu = {
- .pmu_enable = x86_pmu_pmu_enable,
- .pmu_disable = x86_pmu_pmu_disable,
+ .pmu_enable = x86_pmu_enable,
+ .pmu_disable = x86_pmu_disable,
+
.event_init = x86_pmu_event_init,
- .enable = x86_pmu_enable,
- .disable = x86_pmu_disable,
+
+ .add = x86_pmu_add,
+ .del = x86_pmu_del,
.start = x86_pmu_start,
.stop = x86_pmu_stop,
.read = x86_pmu_read,
- .unthrottle = x86_pmu_unthrottle,
+
.start_txn = x86_pmu_start_txn,
.cancel_txn = x86_pmu_cancel_txn,
.commit_txn = x86_pmu_commit_txn,
diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
index ee05c90..82395f2 100644
--- a/arch/x86/kernel/cpu/perf_event_intel.c
+++ b/arch/x86/kernel/cpu/perf_event_intel.c
@@ -763,7 +763,7 @@ again:
data.period = event->hw.last_period;
if (perf_event_overflow(event, 1, &data, regs))
- x86_pmu_stop(event);
+ x86_pmu_stop(event, 0);
}
/*
diff --git a/arch/x86/kernel/cpu/perf_event_intel_ds.c b/arch/x86/kernel/cpu/perf_event_intel_ds.c
index 18018d1..9893a2f 100644
--- a/arch/x86/kernel/cpu/perf_event_intel_ds.c
+++ b/arch/x86/kernel/cpu/perf_event_intel_ds.c
@@ -491,7 +491,7 @@ static void __intel_pmu_pebs_event(struct perf_event *event,
regs.flags &= ~PERF_EFLAGS_EXACT;
if (perf_event_overflow(event, 1, &data, ®s))
- x86_pmu_stop(event);
+ x86_pmu_stop(event, 0);
}
static void intel_pmu_drain_pebs_core(struct pt_regs *iregs)
diff --git a/include/linux/ftrace_event.h b/include/linux/ftrace_event.h
index 5f8ad7b..8beabb9 100644
--- a/include/linux/ftrace_event.h
+++ b/include/linux/ftrace_event.h
@@ -252,8 +252,8 @@ DECLARE_PER_CPU(struct pt_regs, perf_trace_regs);
extern int perf_trace_init(struct perf_event *event);
extern void perf_trace_destroy(struct perf_event *event);
-extern int perf_trace_enable(struct perf_event *event);
-extern void perf_trace_disable(struct perf_event *event);
+extern int perf_trace_add(struct perf_event *event, int flags);
+extern void perf_trace_del(struct perf_event *event, int flags);
extern int ftrace_profile_set_filter(struct perf_event *event, int event_id,
char *filter_str);
extern void ftrace_profile_free_filter(struct perf_event *event);
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index 8cafa15..402073c 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -538,6 +538,7 @@ struct hw_perf_event {
};
#endif
};
+ int state;
local64_t prev_count;
u64 sample_period;
u64 last_period;
@@ -549,6 +550,13 @@ struct hw_perf_event {
#endif
};
+/*
+ * hw_perf_event::state flags
+ */
+#define PERF_HES_STOPPED 0x01 /* the counter is stopped */
+#define PERF_HES_UPTODATE 0x02 /* event->count up-to-date */
+#define PERF_HES_ARCH 0x04
+
struct perf_event;
/*
@@ -564,42 +572,62 @@ struct pmu {
int *pmu_disable_count;
+ /*
+ * Fully disable/enable this PMU, can be used to protect from the PMI
+ * as well as for lazy/batch writing of the MSRs.
+ */
void (*pmu_enable) (struct pmu *pmu); /* optional */
void (*pmu_disable) (struct pmu *pmu); /* optional */
/*
+ * Try and initialize the event for this PMU.
* Should return -ENOENT when the @event doesn't match this PMU.
*/
int (*event_init) (struct perf_event *event);
- int (*enable) (struct perf_event *event);
- void (*disable) (struct perf_event *event);
- int (*start) (struct perf_event *event);
- void (*stop) (struct perf_event *event);
+#define PERF_EF_START 0x01 /* start the counter when adding */
+#define PERF_EF_RELOAD 0x02 /* reload the counter when starting */
+#define PERF_EF_UPDATE 0x04 /* update the counter when stopping */
+
+ /*
+ * Adds/Removes a counter to/from the PMU, can be done inside
+ * a transaction, see the ->*_txn() methods.
+ */
+ int (*add) (struct perf_event *event, int flags);
+ void (*del) (struct perf_event *event, int flags);
+
+ /*
+ * Starts/Stops a counter present on the PMU. The PMI handler
+ * should stop the counter when perf_event_overflow() returns
+ * !0. ->start() will be used to continue.
+ */
+ void (*start) (struct perf_event *event, int flags);
+ void (*stop) (struct perf_event *event, int flags);
+
+ /*
+ * Updates the counter value of the event.
+ */
void (*read) (struct perf_event *event);
- void (*unthrottle) (struct perf_event *event);
/*
* Group events scheduling is treated as a transaction, add
* group events as a whole and perform one schedulability test.
* If the test fails, roll back the whole group
- */
-
- /*
- * Start the transaction, after this ->enable() doesn't need to
+ *
+ * Start the transaction, after this ->add() doesn't need to
* do schedulability tests.
*/
void (*start_txn) (struct pmu *pmu); /* optional */
/*
- * If ->start_txn() disabled the ->enable() schedulability test
+ * If ->start_txn() disabled the ->add() schedulability test
* then ->commit_txn() is required to perform one. On success
* the transaction is closed. On error the transaction is kept
* open until ->cancel_txn() is called.
*/
int (*commit_txn) (struct pmu *pmu); /* optional */
/*
- * Will cancel the transaction, assumes ->disable() is called
- * for each successfull ->enable() during the transaction.
+ * Will cancel the transaction, assumes ->del() is called
+ * for each successfull ->add() during the transaction.
*/
void (*cancel_txn) (struct pmu *pmu); /* optional */
};
@@ -680,7 +708,7 @@ struct perf_event {
int nr_siblings;
int group_flags;
struct perf_event *group_leader;
- struct pmu *pmu;
+ struct pmu *pmu;
enum perf_event_active_state state;
unsigned int attach_state;
diff --git a/kernel/hw_breakpoint.c b/kernel/hw_breakpoint.c
index e9c5cfa..6f15009 100644
--- a/kernel/hw_breakpoint.c
+++ b/kernel/hw_breakpoint.c
@@ -586,10 +586,35 @@ static int hw_breakpoint_event_init(struct perf_event *bp)
return 0;
}
+static int hw_breakpoint_add(struct perf_event *bp, int flags)
+{
+ if (!(flags & PERF_EF_START))
+ bp->hw.state = PERF_HES_STOPPED;
+
+ return arch_install_hw_breakpoint(bp);
+}
+
+static void hw_breakpoint_del(struct perf_event *bp, int flags)
+{
+ arch_uninstall_hw_breakpoint(bp);
+}
+
+static void hw_breakpoint_start(struct perf_event *bp, int flags)
+{
+ bp->hw.state = 0;
+}
+
+static void hw_breakpoint_stop(struct perf_event *bp, int flags)
+{
+ bp->hw.state = PERF_HES_STOPPED;
+}
+
static struct pmu perf_breakpoint = {
.event_init = hw_breakpoint_event_init,
- .enable = arch_install_hw_breakpoint,
- .disable = arch_uninstall_hw_breakpoint,
+ .add = hw_breakpoint_add,
+ .del = hw_breakpoint_del,
+ .start = hw_breakpoint_start,
+ .stop = hw_breakpoint_stop,
.read = hw_breakpoint_pmu_read,
};
diff --git a/kernel/perf_event.c b/kernel/perf_event.c
index 1a6cdbf..3bace4f 100644
--- a/kernel/perf_event.c
+++ b/kernel/perf_event.c
@@ -424,7 +424,7 @@ event_sched_out(struct perf_event *event,
event->state = PERF_EVENT_STATE_OFF;
}
event->tstamp_stopped = ctx->time;
- event->pmu->disable(event);
+ event->pmu->del(event, 0);
event->oncpu = -1;
if (!is_software_event(event))
@@ -649,7 +649,7 @@ event_sched_in(struct perf_event *event,
*/
smp_wmb();
- if (event->pmu->enable(event)) {
+ if (event->pmu->add(event, PERF_EF_START)) {
event->state = PERF_EVENT_STATE_INACTIVE;
event->oncpu = -1;
return -EAGAIN;
@@ -1482,22 +1482,6 @@ do { \
return div64_u64(dividend, divisor);
}
-static void perf_event_stop(struct perf_event *event)
-{
- if (!event->pmu->stop)
- return event->pmu->disable(event);
-
- return event->pmu->stop(event);
-}
-
-static int perf_event_start(struct perf_event *event)
-{
- if (!event->pmu->start)
- return event->pmu->enable(event);
-
- return event->pmu->start(event);
-}
-
static void perf_adjust_period(struct perf_event *event, u64 nsec, u64 count)
{
struct hw_perf_event *hwc = &event->hw;
@@ -1517,9 +1501,9 @@ static void perf_adjust_period(struct perf_event *event, u64 nsec, u64 count)
hwc->sample_period = sample_period;
if (local64_read(&hwc->period_left) > 8*sample_period) {
- perf_event_stop(event);
+ event->pmu->stop(event, PERF_EF_UPDATE);
local64_set(&hwc->period_left, 0);
- perf_event_start(event);
+ event->pmu->start(event, PERF_EF_RELOAD);
}
}
@@ -1548,7 +1532,7 @@ static void perf_ctx_adjust_freq(struct perf_event_context *ctx)
*/
if (interrupts == MAX_INTERRUPTS) {
perf_log_throttle(event, 1);
- event->pmu->unthrottle(event);
+ event->pmu->start(event, 0);
}
if (!event->attr.freq || !event->attr.sample_freq)
@@ -2506,6 +2490,9 @@ int perf_event_task_disable(void)
static int perf_event_index(struct perf_event *event)
{
+ if (event->hw.state & PERF_HES_STOPPED)
+ return 0;
+
if (event->state != PERF_EVENT_STATE_ACTIVE)
return 0;
@@ -4120,8 +4107,6 @@ static int __perf_event_overflow(struct perf_event *event, int nmi,
struct hw_perf_event *hwc = &event->hw;
int ret = 0;
- throttle = (throttle && event->pmu->unthrottle != NULL);
-
if (!throttle) {
hwc->interrupts++;
} else {
@@ -4246,7 +4231,7 @@ static void perf_swevent_overflow(struct perf_event *event, u64 overflow,
}
}
-static void perf_swevent_add(struct perf_event *event, u64 nr,
+static void perf_swevent_event(struct perf_event *event, u64 nr,
int nmi, struct perf_sample_data *data,
struct pt_regs *regs)
{
@@ -4272,6 +4257,9 @@ static void perf_swevent_add(struct perf_event *event, u64 nr,
static int perf_exclude_event(struct perf_event *event,
struct pt_regs *regs)
{
+ if (event->hw.state & PERF_HES_STOPPED)
+ return 0;
+
if (regs) {
if (event->attr.exclude_user && user_mode(regs))
return 1;
@@ -4371,7 +4359,7 @@ static void do_perf_sw_event(enum perf_type_id type, u32 event_id,
hlist_for_each_entry_rcu(event, node, head, hlist_entry) {
if (perf_swevent_match(event, type, event_id, data, regs))
- perf_swevent_add(event, nr, nmi, data, regs);
+ perf_swevent_event(event, nr, nmi, data, regs);
}
end:
rcu_read_unlock();
@@ -4415,7 +4403,7 @@ static void perf_swevent_read(struct perf_event *event)
{
}
-static int perf_swevent_enable(struct perf_event *event)
+static int perf_swevent_add(struct perf_event *event, int flags)
{
struct hw_perf_event *hwc = &event->hw;
struct perf_cpu_context *cpuctx;
@@ -4428,6 +4416,8 @@ static int perf_swevent_enable(struct perf_event *event)
perf_swevent_set_period(event);
}
+ hwc->state = !(flags & PERF_EF_START);
+
head = find_swevent_head(cpuctx, event);
if (WARN_ON_ONCE(!head))
return -EINVAL;
@@ -4437,18 +4427,19 @@ static int perf_swevent_enable(struct perf_event *event)
return 0;
}
-static void perf_swevent_disable(struct perf_event *event)
+static void perf_swevent_del(struct perf_event *event, int flags)
{
hlist_del_rcu(&event->hlist_entry);
}
-static void perf_swevent_void(struct perf_event *event)
+static void perf_swevent_start(struct perf_event *event, int flags)
{
+ event->hw.state = 0;
}
-static int perf_swevent_int(struct perf_event *event)
+static void perf_swevent_stop(struct perf_event *event, int flags)
{
- return 0;
+ event->hw.state = PERF_HES_STOPPED;
}
/* Deref the hlist from the update side */
@@ -4604,12 +4595,11 @@ static int perf_swevent_init(struct perf_event *event)
static struct pmu perf_swevent = {
.event_init = perf_swevent_init,
- .enable = perf_swevent_enable,
- .disable = perf_swevent_disable,
- .start = perf_swevent_int,
- .stop = perf_swevent_void,
+ .add = perf_swevent_add,
+ .del = perf_swevent_del,
+ .start = perf_swevent_start,
+ .stop = perf_swevent_stop,
.read = perf_swevent_read,
- .unthrottle = perf_swevent_void, /* hwc->interrupts already reset */
};
#ifdef CONFIG_EVENT_TRACING
@@ -4657,7 +4647,7 @@ void perf_tp_event(u64 addr, u64 count, void *record, int entry_size,
hlist_for_each_entry_rcu(event, node, head, hlist_entry) {
if (perf_tp_event_match(event, &data, regs))
- perf_swevent_add(event, count, 1, &data, regs);
+ perf_swevent_event(event, count, 1, &data, regs);
}
perf_swevent_put_recursion_context(rctx);
@@ -4696,12 +4686,11 @@ static int perf_tp_event_init(struct perf_event *event)
static struct pmu perf_tracepoint = {
.event_init = perf_tp_event_init,
- .enable = perf_trace_enable,
- .disable = perf_trace_disable,
- .start = perf_swevent_int,
- .stop = perf_swevent_void,
+ .add = perf_trace_add,
+ .del = perf_trace_del,
+ .start = perf_swevent_start,
+ .stop = perf_swevent_stop,
.read = perf_swevent_read,
- .unthrottle = perf_swevent_void,
};
static inline void perf_tp_register(void)
@@ -4757,8 +4746,8 @@ void perf_bp_event(struct perf_event *bp, void *data)
perf_sample_data_init(&sample, bp->attr.bp_addr);
- if (!perf_exclude_event(bp, regs))
- perf_swevent_add(bp, 1, 1, &sample, regs);
+ if (!bp->hw.state && !perf_exclude_event(bp, regs))
+ perf_swevent_event(bp, 1, 1, &sample, regs);
}
#endif
@@ -4834,32 +4823,39 @@ static void perf_swevent_cancel_hrtimer(struct perf_event *event)
static void cpu_clock_event_update(struct perf_event *event)
{
- int cpu = raw_smp_processor_id();
s64 prev;
u64 now;
- now = cpu_clock(cpu);
+ now = local_clock();
prev = local64_xchg(&event->hw.prev_count, now);
local64_add(now - prev, &event->count);
}
-static int cpu_clock_event_enable(struct perf_event *event)
+static void cpu_clock_event_start(struct perf_event *event, int flags)
{
- struct hw_perf_event *hwc = &event->hw;
- int cpu = raw_smp_processor_id();
-
- local64_set(&hwc->prev_count, cpu_clock(cpu));
+ local64_set(&event->hw.prev_count, local_clock());
perf_swevent_start_hrtimer(event);
-
- return 0;
}
-static void cpu_clock_event_disable(struct perf_event *event)
+static void cpu_clock_event_stop(struct perf_event *event, int flags)
{
perf_swevent_cancel_hrtimer(event);
cpu_clock_event_update(event);
}
+static int cpu_clock_event_add(struct perf_event *event, int flags)
+{
+ if (flags & PERF_EF_START)
+ cpu_clock_event_start(event, flags);
+
+ return 0;
+}
+
+static void cpu_clock_event_del(struct perf_event *event, int flags)
+{
+ cpu_clock_event_stop(event, flags);
+}
+
static void cpu_clock_event_read(struct perf_event *event)
{
cpu_clock_event_update(event);
@@ -4878,8 +4874,10 @@ static int cpu_clock_event_init(struct perf_event *event)
static struct pmu perf_cpu_clock = {
.event_init = cpu_clock_event_init,
- .enable = cpu_clock_event_enable,
- .disable = cpu_clock_event_disable,
+ .add = cpu_clock_event_add,
+ .del = cpu_clock_event_del,
+ .start = cpu_clock_event_start,
+ .stop = cpu_clock_event_stop,
.read = cpu_clock_event_read,
};
@@ -4897,25 +4895,29 @@ static void task_clock_event_update(struct perf_event *event, u64 now)
local64_add(delta, &event->count);
}
-static int task_clock_event_enable(struct perf_event *event)
+static void task_clock_event_start(struct perf_event *event, int flags)
{
- struct hw_perf_event *hwc = &event->hw;
- u64 now;
-
- now = event->ctx->time;
-
- local64_set(&hwc->prev_count, now);
-
+ local64_set(&event->hw.prev_count, event->ctx->time);
perf_swevent_start_hrtimer(event);
-
- return 0;
}
-static void task_clock_event_disable(struct perf_event *event)
+static void task_clock_event_stop(struct perf_event *event, int flags)
{
perf_swevent_cancel_hrtimer(event);
task_clock_event_update(event, event->ctx->time);
+}
+
+static int task_clock_event_add(struct perf_event *event, int flags)
+{
+ if (flags & PERF_EF_START)
+ task_clock_event_start(event, flags);
+ return 0;
+}
+
+static void task_clock_event_del(struct perf_event *event, int flags)
+{
+ task_clock_event_stop(event, PERF_EF_UPDATE);
}
static void task_clock_event_read(struct perf_event *event)
@@ -4947,8 +4949,10 @@ static int task_clock_event_init(struct perf_event *event)
static struct pmu perf_task_clock = {
.event_init = task_clock_event_init,
- .enable = task_clock_event_enable,
- .disable = task_clock_event_disable,
+ .add = task_clock_event_add,
+ .del = task_clock_event_del,
+ .start = task_clock_event_start,
+ .stop = task_clock_event_stop,
.read = task_clock_event_read,
};
diff --git a/kernel/trace/trace_event_perf.c b/kernel/trace/trace_event_perf.c
index f3bbcd1..39c059c 100644
--- a/kernel/trace/trace_event_perf.c
+++ b/kernel/trace/trace_event_perf.c
@@ -101,7 +101,7 @@ int perf_trace_init(struct perf_event *p_event)
return ret;
}
-int perf_trace_enable(struct perf_event *p_event)
+int perf_trace_add(struct perf_event *p_event, int flags)
{
struct ftrace_event_call *tp_event = p_event->tp_event;
struct hlist_head __percpu *pcpu_list;
@@ -111,13 +111,16 @@ int perf_trace_enable(struct perf_event *p_event)
if (WARN_ON_ONCE(!pcpu_list))
return -EINVAL;
+ if (!(flags & PERF_EF_START))
+ p_event->hw.state = PERF_HES_STOPPED;
+
list = this_cpu_ptr(pcpu_list);
hlist_add_head_rcu(&p_event->hlist_entry, list);
return 0;
}
-void perf_trace_disable(struct perf_event *p_event)
+void perf_trace_del(struct perf_event *p_event, int flags)
{
hlist_del_rcu(&p_event->hlist_entry);
}
next prev parent reply other threads:[~2010-09-09 19:51 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-bot for Peter Zijlstra [this message]
2010-09-11 8:16 ` [tip:perf/core] perf: Rework the PMU methods 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:perf/core] perf tools: Introduce event selectors tip-bot for Arnaldo Carvalho de Melo
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
-- strict thread matches above, loose matches on Subject: below --
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-a4eaf7f14675cb512d69f0c928055e73d0c6d252@git.kernel.org \
--to=a.p.zijlstra@chello.nl \
--cc=davem@davemloft.net \
--cc=dengcheng.zhu@gmail.com \
--cc=eranian@googlemail.com \
--cc=fweisbec@gmail.com \
--cc=gorcunov@gmail.com \
--cc=hpa@zytor.com \
--cc=lethal@linux-sh.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mcree@orcon.net.nz \
--cc=ming.m.lin@intel.com \
--cc=mingo@elte.hu \
--cc=mingo@redhat.com \
--cc=paulus@samba.org \
--cc=robert.richter@amd.com \
--cc=tglx@linutronix.de \
--cc=will.deacon@arm.com \
--cc=yanmin_zhang@linux.intel.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).