Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 211945
b: refs/heads/master
c: 7e54a5a
h: refs/heads/master
i:
  211943: d7d2541
v: v3
  • Loading branch information
Peter Zijlstra authored and Ingo Molnar committed Oct 18, 2010
1 parent 1ed1d1f commit f9917c0
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 12 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: 82cd6def9806dcb6a325fb6abbc1d61388a15f6a
refs/heads/master: 7e54a5a0b655734326dc78c2b5efc1eb35497bb6
20 changes: 11 additions & 9 deletions trunk/include/linux/perf_event.h
Original file line number Diff line number Diff line change
Expand Up @@ -1012,18 +1012,20 @@ static inline void perf_fetch_caller_regs(struct pt_regs *regs)
perf_arch_fetch_caller_regs(regs, CALLER_ADDR0);
}

static inline void
static __always_inline void
perf_sw_event(u32 event_id, u64 nr, int nmi, struct pt_regs *regs, u64 addr)
{
if (atomic_read(&perf_swevent_enabled[event_id])) {
struct pt_regs hot_regs;

if (!regs) {
perf_fetch_caller_regs(&hot_regs);
regs = &hot_regs;
}
__perf_sw_event(event_id, nr, nmi, regs, addr);
struct pt_regs hot_regs;

JUMP_LABEL(&perf_swevent_enabled[event_id], have_event);
return;

have_event:
if (!regs) {
perf_fetch_caller_regs(&hot_regs);
regs = &hot_regs;
}
__perf_sw_event(event_id, nr, nmi, regs, addr);
}

extern void perf_event_mmap(struct vm_area_struct *vma);
Expand Down
4 changes: 2 additions & 2 deletions trunk/kernel/perf_event.c
Original file line number Diff line number Diff line change
Expand Up @@ -4669,7 +4669,7 @@ static void sw_perf_event_destroy(struct perf_event *event)

WARN_ON(event->parent);

atomic_dec(&perf_swevent_enabled[event_id]);
jump_label_dec(&perf_swevent_enabled[event_id]);
swevent_hlist_put(event);
}

Expand Down Expand Up @@ -4699,7 +4699,7 @@ static int perf_swevent_init(struct perf_event *event)
if (err)
return err;

atomic_inc(&perf_swevent_enabled[event_id]);
jump_label_inc(&perf_swevent_enabled[event_id]);
event->destroy = sw_perf_event_destroy;
}

Expand Down

0 comments on commit f9917c0

Please sign in to comment.