diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-01-21 11:50:04 -0500 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-01-21 11:50:04 -0500 |
| commit | e80b1359858df17b0034bdf7d1b6f3e0d5b97257 (patch) | |
| tree | c0ce7b9abcef8910ee78327285d85b04b0512d33 /kernel | |
| parent | 341031caec0cd730e84d248d95851bf54ec4e41f (diff) | |
| parent | b27d515a49169e5e2a92d621faac761074a8c5b1 (diff) | |
Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
perf: x86: Add support for the ANY bit
perf: Change the is_software_event() definition
perf: Honour event state for aux stream data
perf: Fix perf_event_do_pending() fallback callsite
perf kmem: Print usage help for unknown commands
perf kmem: Increase "Hit" column length
hw-breakpoints, perf: Fix broken mmiotrace due to dr6 by reference change
perf timechart: Use tid not pid for COMM change
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/perf_event.c | 9 | ||||
| -rw-r--r-- | kernel/timer.c | 3 |
2 files changed, 10 insertions, 2 deletions
diff --git a/kernel/perf_event.c b/kernel/perf_event.c index 603c0d8b5df1..d27746bd3a06 100644 --- a/kernel/perf_event.c +++ b/kernel/perf_event.c | |||
| @@ -3268,6 +3268,9 @@ static void perf_event_task_output(struct perf_event *event, | |||
| 3268 | 3268 | ||
| 3269 | static int perf_event_task_match(struct perf_event *event) | 3269 | static int perf_event_task_match(struct perf_event *event) |
| 3270 | { | 3270 | { |
| 3271 | if (event->state != PERF_EVENT_STATE_ACTIVE) | ||
| 3272 | return 0; | ||
| 3273 | |||
| 3271 | if (event->cpu != -1 && event->cpu != smp_processor_id()) | 3274 | if (event->cpu != -1 && event->cpu != smp_processor_id()) |
| 3272 | return 0; | 3275 | return 0; |
| 3273 | 3276 | ||
| @@ -3377,6 +3380,9 @@ static void perf_event_comm_output(struct perf_event *event, | |||
| 3377 | 3380 | ||
| 3378 | static int perf_event_comm_match(struct perf_event *event) | 3381 | static int perf_event_comm_match(struct perf_event *event) |
| 3379 | { | 3382 | { |
| 3383 | if (event->state != PERF_EVENT_STATE_ACTIVE) | ||
| 3384 | return 0; | ||
| 3385 | |||
| 3380 | if (event->cpu != -1 && event->cpu != smp_processor_id()) | 3386 | if (event->cpu != -1 && event->cpu != smp_processor_id()) |
| 3381 | return 0; | 3387 | return 0; |
| 3382 | 3388 | ||
| @@ -3494,6 +3500,9 @@ static void perf_event_mmap_output(struct perf_event *event, | |||
| 3494 | static int perf_event_mmap_match(struct perf_event *event, | 3500 | static int perf_event_mmap_match(struct perf_event *event, |
| 3495 | struct perf_mmap_event *mmap_event) | 3501 | struct perf_mmap_event *mmap_event) |
| 3496 | { | 3502 | { |
| 3503 | if (event->state != PERF_EVENT_STATE_ACTIVE) | ||
| 3504 | return 0; | ||
| 3505 | |||
| 3497 | if (event->cpu != -1 && event->cpu != smp_processor_id()) | 3506 | if (event->cpu != -1 && event->cpu != smp_processor_id()) |
| 3498 | return 0; | 3507 | return 0; |
| 3499 | 3508 | ||
diff --git a/kernel/timer.c b/kernel/timer.c index 15533b792397..c61a7949387f 100644 --- a/kernel/timer.c +++ b/kernel/timer.c | |||
| @@ -1198,6 +1198,7 @@ void update_process_times(int user_tick) | |||
| 1198 | run_local_timers(); | 1198 | run_local_timers(); |
| 1199 | rcu_check_callbacks(cpu, user_tick); | 1199 | rcu_check_callbacks(cpu, user_tick); |
| 1200 | printk_tick(); | 1200 | printk_tick(); |
| 1201 | perf_event_do_pending(); | ||
| 1201 | scheduler_tick(); | 1202 | scheduler_tick(); |
| 1202 | run_posix_cpu_timers(p); | 1203 | run_posix_cpu_timers(p); |
| 1203 | } | 1204 | } |
| @@ -1209,8 +1210,6 @@ static void run_timer_softirq(struct softirq_action *h) | |||
| 1209 | { | 1210 | { |
| 1210 | struct tvec_base *base = __get_cpu_var(tvec_bases); | 1211 | struct tvec_base *base = __get_cpu_var(tvec_bases); |
| 1211 | 1212 | ||
| 1212 | perf_event_do_pending(); | ||
| 1213 | |||
| 1214 | hrtimer_run_pending(); | 1213 | hrtimer_run_pending(); |
| 1215 | 1214 | ||
| 1216 | if (time_after_eq(jiffies, base->timer_jiffies)) | 1215 | if (time_after_eq(jiffies, base->timer_jiffies)) |
