Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 187852
b: refs/heads/master
c: dc1d628
h: refs/heads/master
v: v3
  • Loading branch information
Peter Zijlstra authored and Ingo Molnar committed Mar 10, 2010
1 parent 5601fc3 commit 72cb1a1
Show file tree
Hide file tree
Showing 8 changed files with 26 additions and 27 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 548b84166917d6f5e2296123b85ad24aecd3801d
refs/heads/master: dc1d628a67a8f042e711ea5accc0beedc3ef0092
4 changes: 2 additions & 2 deletions trunk/arch/arm/kernel/perf_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -965,7 +965,7 @@ armv6pmu_handle_irq(int irq_num,
*/
armv6_pmcr_write(pmcr);

data.addr = 0;
perf_sample_data_init(&data, 0);

cpuc = &__get_cpu_var(cpu_hw_events);
for (idx = 0; idx <= armpmu->num_events; ++idx) {
Expand Down Expand Up @@ -1945,7 +1945,7 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev)
*/
regs = get_irq_regs();

data.addr = 0;
perf_sample_data_init(&data, 0);

cpuc = &__get_cpu_var(cpu_hw_events);
for (idx = 0; idx <= armpmu->num_events; ++idx) {
Expand Down
8 changes: 4 additions & 4 deletions trunk/arch/powerpc/kernel/perf_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -1164,10 +1164,10 @@ static void record_and_restart(struct perf_event *event, unsigned long val,
* Finally record data if requested.
*/
if (record) {
struct perf_sample_data data = {
.addr = ~0ULL,
.period = event->hw.last_period,
};
struct perf_sample_data data;

perf_sample_data_init(&data, ~0ULL);
data.period = event->hw.last_period;

if (event->attr.sample_type & PERF_SAMPLE_ADDR)
perf_get_data_addr(regs, &data.addr);
Expand Down
2 changes: 1 addition & 1 deletion trunk/arch/sparc/kernel/perf_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -1189,7 +1189,7 @@ static int __kprobes perf_event_nmi_handler(struct notifier_block *self,

regs = args->regs;

data.addr = 0;
perf_sample_data_init(&data, 0);

cpuc = &__get_cpu_var(cpu_hw_events);

Expand Down
3 changes: 1 addition & 2 deletions trunk/arch/x86/kernel/cpu/perf_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -1097,8 +1097,7 @@ static int x86_pmu_handle_irq(struct pt_regs *regs)
int idx, handled = 0;
u64 val;

data.addr = 0;
data.raw = NULL;
perf_sample_data_init(&data, 0);

cpuc = &__get_cpu_var(cpu_hw_events);

Expand Down
6 changes: 2 additions & 4 deletions trunk/arch/x86/kernel/cpu/perf_event_intel.c
Original file line number Diff line number Diff line change
Expand Up @@ -590,10 +590,9 @@ static void intel_pmu_drain_bts_buffer(void)

ds->bts_index = ds->bts_buffer_base;

perf_sample_data_init(&data, 0);

data.period = event->hw.last_period;
data.addr = 0;
data.raw = NULL;
regs.ip = 0;

/*
Expand Down Expand Up @@ -742,8 +741,7 @@ static int intel_pmu_handle_irq(struct pt_regs *regs)
int bit, loops;
u64 ack, status;

data.addr = 0;
data.raw = NULL;
perf_sample_data_init(&data, 0);

cpuc = &__get_cpu_var(cpu_hw_events);

Expand Down
7 changes: 7 additions & 0 deletions trunk/include/linux/perf_event.h
Original file line number Diff line number Diff line change
Expand Up @@ -801,6 +801,13 @@ struct perf_sample_data {
struct perf_raw_record *raw;
};

static inline
void perf_sample_data_init(struct perf_sample_data *data, u64 addr)
{
data->addr = addr;
data->raw = NULL;
}

extern void perf_output_sample(struct perf_output_handle *handle,
struct perf_event_header *header,
struct perf_sample_data *data,
Expand Down
21 changes: 8 additions & 13 deletions trunk/kernel/perf_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -4108,8 +4108,7 @@ void __perf_sw_event(u32 event_id, u64 nr, int nmi,
if (rctx < 0)
return;

data.addr = addr;
data.raw = NULL;
perf_sample_data_init(&data, addr);

do_perf_sw_event(PERF_TYPE_SOFTWARE, event_id, nr, nmi, &data, regs);

Expand Down Expand Up @@ -4154,11 +4153,10 @@ static enum hrtimer_restart perf_swevent_hrtimer(struct hrtimer *hrtimer)
struct perf_event *event;
u64 period;

event = container_of(hrtimer, struct perf_event, hw.hrtimer);
event = container_of(hrtimer, struct perf_event, hw.hrtimer);
event->pmu->read(event);

data.addr = 0;
data.raw = NULL;
perf_sample_data_init(&data, 0);
data.period = event->hw.last_period;
regs = get_irq_regs();
/*
Expand Down Expand Up @@ -4322,17 +4320,15 @@ static const struct pmu perf_ops_task_clock = {
void perf_tp_event(int event_id, u64 addr, u64 count, void *record,
int entry_size)
{
struct pt_regs *regs = get_irq_regs();
struct perf_sample_data data;
struct perf_raw_record raw = {
.size = entry_size,
.data = record,
};

struct perf_sample_data data = {
.addr = addr,
.raw = &raw,
};

struct pt_regs *regs = get_irq_regs();
perf_sample_data_init(&data, addr);
data.raw = &raw;

if (!regs)
regs = task_pt_regs(current);
Expand Down Expand Up @@ -4448,8 +4444,7 @@ void perf_bp_event(struct perf_event *bp, void *data)
struct perf_sample_data sample;
struct pt_regs *regs = data;

sample.raw = NULL;
sample.addr = bp->attr.bp_addr;
perf_sample_data_init(&sample, bp->attr.bp_addr);

if (!perf_exclude_event(bp, regs))
perf_swevent_add(bp, 1, 1, &sample, regs);
Expand Down

0 comments on commit 72cb1a1

Please sign in to comment.